Codeception 验收测试同一页面上不同形式的完全相同的按钮

Codeception acceptance tests exactly the same buttons in different forms on the same page

我在同一页面上以两种不同的形式有两个完全相同的按钮。表单和按钮没有 ID 或名称,唯一的区别在于这些表单之间的区别,即操作。

<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]");



解决方案一:
我给按钮添加了 ID。

方案二:

$I->click("//form[contains(@action,'http://mysite/two')]/button[@type='submit']");

尝试使用以下 XPath 表达式:

$I->click('(//button[@type=submit])[2]');

尝试如下操作:

$I->click("//form[contains(@action,'http://mysite/two')]/button[@type='submit']");