Codeception с Webdriver — Нажатие кнопки с тем же именем / значением / типом

Я пытаюсь выяснить, как я могу использовать $I->click с кодовым обозначением для кнопки, которая имеет то же имя / значение / тип, что и другая кнопка на той же странице. Примеры:

<input class="submit_btn uppercase" type="submit" name="go" value="/GO/"> // button I want to click

А ТАКЖЕ

<input class="submit_btn" type="submit" value="/GO/" name="go"> // button I don't want to click

Какой синтаксис я должен использовать для разграничения между ними? Я пробовал много разных вещей, включая использование локатора CSS после имени кнопки, например:

$I->click('go', '.uppercase'); // 2nd item is CSS locator

Я также попробовал:

$I->click('go', '.submit_btn uppercase'); // 2nd item is CSS locator

1

Решение

Во-первых, я считаю, что вы должны найти ближайший родительский тег с идентификатором. Я предполагаю, что есть родительский тег с id = «formId». Вот код для выбора этого элемента с помощью селектора CSS:

$I->click('#formId > input.submit_btn.uppercase');

Есть еще один способ, которым вы можете щелкнуть этот элемент по xpath:

$I->click('//input[@class="submit_btn uppercase"]');
0

Другие решения

Я не знаком с кодовым восприятием, но если он имеет полную поддержку селектора CSS (для меня это неоднозначно после быстрого просмотра их документов), вы можете посмотреть на использование :not(s) селектор.

Если это так, вы можете использовать что-то вроде:

$I->click('go', '.submit_btn:not(.uppercase)');
0

По вопросам рекламы [email protected]