У меня есть две абсолютно одинаковые кнопки в двух разных формах на одной странице. Формы и кнопки не имеют идентификатора или имени, и единственное различие заключается в тех формах, которыми является действие.
<form class="form" method="post" action="http://mysite/one">
<button title="" type="submit" class="button">Edit</button>
</form>
<form class="form" method="post" action="http://mysite/two">
<button title="" type="submit" class="button">Edit</button>
</form>
Я пишу приемочные тесты в Codeception и выполняю эти тесты с помощью PhpBrowser.
Я хочу нажать на эти кнопки, но нажата только первая.
Это работает только для первой кнопки:
$I->click("button[type=submit]");
Решение 1:
Я добавил идентификаторы для кнопок.
Решение 2:
$I->click("//form[contains(@action,'http://mysite/two')]/button[@type='submit']");
Попробуйте что-то вроде следующего:
$I->click("//form[contains(@action,'http://mysite/two')]/button[@type='submit']");
Попробуйте использовать следующее выражение XPath:
$I->click('(//button[@type=submit])[2]');