Php 带有Webdriver的Codeception-单击具有相同名称/值/类型的按钮
我正在尝试找出如何将Php 带有Webdriver的Codeception-单击具有相同名称/值/类型的按钮,php,css,selenium-webdriver,webdriver,codeception,Php,Css,Selenium Webdriver,Webdriver,Codeception,我正在尝试找出如何将$I->click与codeception一起用于与同一页面上的另一个按钮共享相同名称/值/类型的按钮。例如: //我要单击的按钮 及 //按钮我不想单击 我应该使用什么语法来区分两者?我尝试过许多不同的方法,包括在按钮名称后使用CSS定位器,如: $I->单击('go','.uppercase');//第二项是CSS定位器 我也试过: $I->单击('go','。提交_btn大写);//第二项是CSS定位器我不熟悉codeception,但如果它有完整的CSS选择器支持(快
$I->click
与codeception一起用于与同一页面上的另一个按钮共享相同名称/值/类型的按钮。例如:
//我要单击的按钮
及
//按钮我不想单击
我应该使用什么语法来区分两者?我尝试过许多不同的方法,包括在按钮名称后使用CSS定位器,如:
$I->单击('go','.uppercase');//第二项是CSS定位器
我也试过:
$I->单击('go','。提交_btn大写);//第二项是CSS定位器
我不熟悉codeception,但如果它有完整的CSS选择器支持(快速查看他们的文档后对我来说不明确),您可以使用:not(s)
如果是这样的话,您应该能够使用以下内容:
$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"]');
我实际上是想抓住class=“submit\u btn uppercase”,而不是避开那个按钮。这一行代码导致了解析错误:(没错。我不确定我是如何在脑海中颠倒过来的。其他人已经建议了我现在要跟进的内容。你能试试这个:$I->click('go','submit_btn.uppercase');父表单没有id标签。这个网站的一些设计非常糟糕。但是,xpath定位器确实有效!