Selenium PHP fillfield()通过xpath

Selenium PHP fillfield()通过xpath,php,selenium,xpath,Php,Selenium,Xpath,html: <div class="input-container" data-keyid="5"> <label> Keyword </label> <input class="keyword-input" placeholder="Enter text"></input> 我想使用xpath执行如下操作。它不起作用,但能让你了解我在做什么: $page->fillField('//input[@class="keyword-

html:

<div class="input-container" data-keyid="5"> <label> Keyword </label> <input class="keyword-input" placeholder="Enter text"></input>
我想使用xpath执行如下操作。它不起作用,但能让你了解我在做什么:

$page->fillField('//input[@class="keyword-input"]', 'keyword');
错误应为致命错误:未捕获表单字段id |名称|标签|值 因为它只需要这四个输入中的一个,而不需要xpath。我不知道怎么写这个


如何使用xpath和PHP创建fillfield?

检查fillfield方法,查看它是否与css一起工作,此方法使用id | name | label | value属性,因此需要传递属性的值

如果需要使用xpath,您应该在page对象中找到一个方法,并像以下那样使用它:

$page->find('xpath', '//input[@class="keyword-input"]')->setValue("keyword");
Css备选方案:

$page->find('css', 'input.keyword-input')->setValue("keyword");
要选中复选框,请使用“带复选框查找()”,对于复选框,请取消选中(),对于单选框,请单击()。 确保您正在使用复选框/单选框的正确选择器,它应该是输入元素

要选中带有名称的复选框,应为:

$page->find('xpath', '//*[@class="checkbox cat_name"]')->check();

该复选框应该是一个输入元素,如果不起作用,则选择器不正常。

您是否也可以共享desire HTML…:)请编辑您的问题并共享此HTML,并说明为什么不起作用,是否有任何异常或其他情况?我可以使用find填充文本框。下面是类别的复选框。由于与fillField相同的原因,我无法使用checkField。我试过:$page->find('xpath','//span[@class=“checkbox cat_name”]//div[@class=“state”]]->setValue(“name”);例如,输入的关键字是一个名称:$page->find('xpath','//input[@class=“keyword input”]')->setValue(“Joe Bloggs”);我可以使用xpath和find选中复选框吗?您不能像我在上面的Name代码中看到的那样将值设置为div,元素应该是一个输入。如果下面是一个复选框列表,并且我希望选中Name one,那么如何才能做到这一点?html:请简单说明一下,如果元素上存在多个类,则使用xpath(如
//input[@class=“keyword input”]
将失败。如果元素上只有一个类,并且该类是
关键字输入
,则此操作将起作用。在元素可能有多个类的情况下,请使用
contains()
//输入[包含(@class,“关键字输入”)]
$page->find('xpath', '//*[@class="checkbox cat_name"]')->check();