html:
<div class="input-container" data-keyid="5"> <label> Keyword </label> <input class="keyword-input" placeholder="Enter text"></input>
我正在尝试使用PHP
填充没有id,标签,名称或值的文本框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 |名称|标签|值 因为它只期望这四个输入中的一个而不是xpath。我不知道怎么写这个。
如何使用xpath和PHP进行填充?
答案 0 :(得分:0)
检查fillField方法,看它是否与css不兼容,此方法使用id | name | label | value属性,因此需要传递属性的值。
如果你需要使用xpath,你应该在页面对象中找到一个方法,并使用它:
$page->find('xpath', '//input[@class="keyword-input"]')->setValue("keyword");
Css替代方案:
$page->find('css', 'input.keyword-input')->setValue("keyword");
要检查复选框,请使用find with check(),uncheck()表示复选框,单击()表示单选框。 确保使用右侧选择器作为复选框/单选框,它应该是输入元素。
要使用名称选中复选框,应该是:
$page->find('xpath', '//*[@class="checkbox cat_name"]')->check();
复选框应该是输入元素,如果不起作用则选择器不正常。