Codeception with Webdriver - 单击相同的按钮 name/value/type

Codeception with Webdriver - Clicking button with same name/value/type

我正在尝试找出如何将 $I->click 与 codeception 一起用于一个按钮,该按钮与同一页面上的另一个按钮共享相同的 name/value/type。例子是:

<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

我不熟悉 codeception,但如果它有完整的 CSS 选择器支持(在快速查看他们的文档后对我来说不明确),你可以看看使用 :not(s) selector.

如果是这种情况,您应该可以使用类似的东西:

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

首先,我相信您应该找到最近的定义了 id 的父标签。我假设有一个 id="formId" 的父标签 这是通过 CSS 选择器单击该元素的代码:

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

还有另一种方法可以通过 xpath 单击此元素:

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