Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有Webdriver的Codeception-单击具有相同名称/值/类型的按钮_Php_Css_Selenium Webdriver_Webdriver_Codeception - Fatal编程技术网

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定位器确实有效!