Selenium PHP fillfield() via xpath


Selenium PHP fillfield() via xpath

html:

<div class="input-container" data-keyid="5"> <label> Keyword </label> <input class="keyword-input" placeholder="Enter text"></input>

我试图填写一个文本框,没有id,标签,名称或值使用PHP

file_put_contents('p.html', $page->getHtml());
$HTML='p.html';
$pageHtml = file_get_contents($HTML);
if (false === $pageHtml) {
    die("Error: Couldn't load page content");
}
$doc = new DomDocument();
@$doc->loadHTML($pageHtml);
$doc->preserveWhiteSpace = false;
$xpath = new DomXPath($doc);

我想使用xpath做下面的事情。它不工作,但让你知道我在做什么:

$page->fillField('//input[@class="keyword-input"]', 'keyword');

错误是预期的致命错误:未捕获的表单字段id|name|label|value因为它只需要这四个输入中的一个,而不需要xpath。我不知道该怎么写

我如何使用xpath和PHP做一个填充字段?

检查fillField方法,看看它对css不起作用,这个方法使用id|name|label|value属性,所以你需要传递属性的值。

如果您需要使用xpath,您应该在页面对象中有一个方法find,并使用它,如:

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

$page->find('css', 'input.keyword-input')->setValue("keyword");

要检查复选框,使用find with check(),复选框使用uncheck(),单选框使用click()。请确保你使用了正确的选择器作为复选框/单选框,它应该是输入元素。

用Name来选中复选框,它应该是:

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

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