function WebAssert::linkByHrefExists

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/WebAssert.php \Drupal\Tests\WebAssert::linkByHrefExists()
  2. 8.9.x core/tests/Drupal/Tests/WebAssert.php \Drupal\Tests\WebAssert::linkByHrefExists()
  3. 10 core/tests/Drupal/Tests/WebAssert.php \Drupal\Tests\WebAssert::linkByHrefExists()

Passes if a link containing a given href (part) is found.

Parameters

string $href: The full or partial value of the 'href' attribute of the anchor tag.

int $index: Link position counting from zero.

string $message: (optional) A message to display with the assertion. Do not translate messages: use \Drupal\Component\Render\FormattableMarkup to embed variables in the message text, not t(). If left blank, a default message will be displayed.

Throws

\Behat\Mink\Exception\ExpectationException Thrown when element doesn't exist, or the link label is a different one.

File

core/tests/Drupal/Tests/WebAssert.php, line 397

Class

WebAssert
Defines a class with methods for asserting presence of elements during tests.

Namespace

Drupal\Tests

Code

public function linkByHrefExists($href, $index = 0, $message = '') {
    $xpath = $this->buildXPathQuery('//a[contains(@href, :href)]', [
        ':href' => $href,
    ]);
    $message = $message ? $message : strtr('No link containing href %href found.', [
        '%href' => $href,
    ]);
    $links = $this->session
        ->getPage()
        ->findAll('xpath', $xpath);
    $this->assert(!empty($links[$index]), $message);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.