Skip to content

Latest commit

 

History

History
355 lines (199 loc) · 7.43 KB

File metadata and controls

355 lines (199 loc) · 7.43 KB
layout doc
title Locator - Codeception - Documentation

Codeception\Util\Locator

Set of useful functions for using CSS and XPath locators. Please check them before writing complex functional or acceptance tests.

combine()

public static combine($selector1, $selector2)

  • static
  • param string $selector1
  • param string $selector2
  • throws Exception
  • return string

Applies OR operator to any number of CSS or XPath selectors.

You can mix up CSS and XPath selectors here.

{% highlight php %}

see('Title', Locator::combine('h1','h2','h3')); {% endhighlight %} This will search for `Title` text in either `h1`, `h2`, or `h3` tag. You can also combine CSS selector with XPath locator: {% highlight php %} fillField(Locator::combine('form input[type=text]','//form/textarea[2]'), 'qwerty'); {% endhighlight %} As a result the Locator will produce a mixed XPath value that will be used in fillField action. [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L61) #### contains() *public static* contains($element, $text) * `param string` $element * `param string` $text * `return string` Locates an element containing a text inside. Either CSS or XPath locator can be passed, however they will be converted to XPath. {% highlight php %} tr', -2); // previous than last row {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L280) #### find() *public static* find($element, array $attributes) * `static` * `param string` $element * `param array` $attributes * `return string` Finds element by it's attribute(s) {% highlight php %} seeElement(Locator::find('img', ['title' => 'diagram'])); {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L147) #### firstElement() *public static* firstElement($element) * `param string` $element * `return string` Locates first element of group elements. Either CSS or XPath locator can be passed as locator, Equal to `Locator::elementAt($locator, 1)` {% highlight php %} see('Log In', Locator::href('/login.php')); {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L84) #### humanReadableString() *public static* humanReadableString($selector) * `param \Facebook\WebDriver\WebDriverBy|array|string` $selector * `return string` Transforms strict locator, \Facebook\WebDriver\WebDriverBy into a string representation [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L331) #### isCSS() *public static* isCSS($selector) * `param string` $selector * `return bool` Checks that provided string is CSS selector {% highlight php %} true Locator::isCSS('body') => true Locator::isCSS('//body/p/user') => false {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L170) #### isClass() *public static* isClass($class) * `param string` $class * `return bool` Checks that a string is valid CSS class {% highlight php %} true Locator::isClass('body') => false Locator::isClass('//body/p/user') => false {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L239) #### isID() *public static* isID($id) * `param string` $id * `return bool` Checks that a string is valid CSS ID {% highlight php %} true Locator::isID('body') => false Locator::isID('//body/p/user') => false {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L224) #### isPrecise() *public static* isPrecise($locator) * `param \Facebook\WebDriver\WebDriverBy|array|string` $locator * `return bool` [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L197) #### isXPath() *public static* isXPath($locator) * `param string` $locator * `return bool` Checks that locator is an XPath {% highlight php %} false Locator::isXPath('body') => false Locator::isXPath('//body/p/user') => true {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L190) #### lastElement() *public static* lastElement($element) * `param string` $element * `return string` Locates last element of group elements. Either CSS or XPath locator can be passed as locator, Equal to `Locator::elementAt($locator, -1)` {% highlight php %} seeElement(Locator::option('Male'), '#select-gender'); {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L119) #### tabIndex() *public static* tabIndex($index) * `static` * `param int` $index * `return string` Matches the element with given tab index Do you often use the `TAB` key to navigate through the web page? How do your site respond to this navigation? You could try to match elements by their tab position using `tabIndex` method of `Locator` class. {% highlight php %} fillField(Locator::tabIndex(1), 'davert'); $I->fillField(Locator::tabIndex(2) , 'qwerty'); $I->click('Login'); {% endhighlight %} [See source](https://github.com/Codeception/lib-web/blob/master/src/Codeception/Util/Locator.php#L104)

 

Reference is taken from the source code. Help us to improve documentation. Edit module reference