Codeception\Util\Locator
Набор полезных функций для использования CSS и XPath локаторов. Пожалуйста, проверьте их перед написанием сложных функциональных или приемочных тестов.
combine()
public static combine($selector1, $selector2)
Применяет оператор ИЛИ к любому количеству CSS или XPath селекторов. Вы можете смешивать CSS и XPath селекторы здесь.
<?php
use \Codeception\Util\Locator;
$I->see('Title', Locator::combine('h1','h2','h3'));
?> Это будет искать Title текст в любом из h1, h2, или h3 тегов. Вы также можете комбинировать CSS селектор с XPath локатором:
<?php
use \Codeception\Util\Locator;
$I->fillField(Locator::combine('form input[type=text]','//form/textarea[2]'), 'qwerty');
?> В результате Locator создаст смешанное значение XPath, которое будет использовано в действии fillField.
static-
param$selector1 -
param$selector2 -
throws\Exception -
returnстрока
contains()
public static contains($element, $text)
Находит элемент, содержащий текст внутри. Можно передать CSS или XPath локатор, однако они будут преобразованы в XPath.
<?php
use Codeception\Util\Locator;
Locator::contains('label', 'Name'); // label containing name
Locator::contains('div[@contenteditable=true]', 'hello world'); -
param$element -
param$text -
returnстрока
elementAt()
public static elementAt($element, $position)
Находит элемент по позиции. В качестве локетатора можно передать CSS или XPath локатор, позиция — целое число. Если передано отрицательное значение, счёт начинается с последнего элемента. Первый элемент имеет индекс 1
<?php
use Codeception\Util\Locator;
Locator::elementAt('//table/tr', 2); // second row
Locator::elementAt('//table/tr', -1); // last row
Locator::elementAt('table#grind>tr', -2); // previous than last row -
param string$element CSS или XPath локатор -
param int$position индекс xpath -
returnсмешанный тип
find()
public static find($element, array $attributes)
Находит элемент по его атрибуту(ам)
<?php
use \Codeception\Util\Locator;
$I->seeElement(Locator::find('img', ['title' => 'diagram'])); static-
param$element -
param$attributes -
returnстрока
firstElement()
public static firstElement($element)
Находит первый элемент из группы элементов. В качестве локетатора можно передать CSS или XPath локатор, равносильно Locator::elementAt($locator, 1)
<?php
use Codeception\Util\Locator;
Locator::firstElement('//table/tr'); -
param$element -
returnсмешанный тип
href()
public static href($url)
Сопоставляет элемент a с заданным URL
<?php
use \Codeception\Util\Locator;
$I->see('Log In', Locator::href('/login.php'));
?> static-
param$url -
returnстрока
humanReadableString()
public static humanReadableString($selector)
Преобразует строгий локатор, \Facebook\WebDriver\WebDriverBy в строковое представление
-
param$selector -
returnстрока
isCSS()
public static isCSS($selector)
Проверяет, является ли переданная строка CSS селектором
<?php
Locator::isCSS('#user .hello') => true
Locator::isCSS('body') => true
Locator::isCSS('//body/p/user') => false -
param$selector -
returnлогическое значение
isClass()
public static isClass($class)
Проверяет, является ли строка допустимым CSS классом
<?php
Locator::isClass('.hello') => true
Locator::isClass('body') => false
Locator::isClass('//body/p/user') => false -
param$class -
returnлогическое значение
isID()
public static isID($id)
Проверяет, является ли строка допустимым CSS идентификатором
<?php
Locator::isID('#user') => true
Locator::isID('body') => false
Locator::isID('//body/p/user') => false -
param$id -
returnлогическое значение
isPrecise()
public static isPrecise($locator)
-
param$locator -
returnлогическое значение
isXPath()
public static isXPath($locator)
Проверяет, является ли локатор XPath
<?php
Locator::isXPath('#user .hello') => false
Locator::isXPath('body') => false
Locator::isXPath('//body/p/user') => true -
param$locator -
returnлогическое значение
lastElement()
public static lastElement($element)
Находит последний элемент из группы элементов. В качестве локетатора можно передать CSS или XPath локатор, равносильно Locator::elementAt($locator, -1)
<?php
use Codeception\Util\Locator;
Locator::lastElement('//table/tr'); -
param$element -
returnсмешанный тип
option()
public static option($value)
Сопоставляет элемент option по тексту:
<?php
use Codeception\Util\Locator;
$I->seeElement(Locator::option('Male'), '#select-gender'); -
param$value -
returnстрока
tabIndex()
public static tabIndex($index)
Сопоставляет элемент с заданным индексом tab
Вы часто используете клавишу TAB для навигации по веб-странице? Как ваш сайт реагирует на эту навигацию? Вы можете попробовать сопоставлять элементы по их позиции tab с помощью метода tabIndex класса Locator.
<?php
use \Codeception\Util\Locator;
$I->fillField(Locator::tabIndex(1), 'davert');
$I->fillField(Locator::tabIndex(2) , 'qwerty');
$I->click('Login');
?> static-
param$index -
returnстрока
© 2011 Michael Bodnarchuk and contributors
Licensed under the MIT License.
https://codeception.com/docs/reference/Locator