假设我想检查HTML中使用XPATH的标签旁边是否存在复选框,我该怎么做呢?
例如:
$all_rows = array();
$header = fgetcsv($file);
while ($row = fgetcsv($file)) {
$all_rows[] = array_combine($header, $row);
}
我知道我可以使用<div>
<input type="checkbox" />
<label>This Is A Test</label>
</div>
来获取标签,我想我可以使用"//label[.='This Is A Test']"
查看该复选框是否存在,但是(使用Selenium)我收到错误信息不存在。
答案 0 :(得分:1)
[axisname::nodetest[predicate]] @* selects all the attributes of the context node .. selects the parent of the context node
XML模板:
<div>
<input type="checkbox" />
<label>This Is A Test</label>
<input type="checkbox1" />
</div>
以下XPath可以帮助您XPath Axes:
//label[.='This Is A Test']/../input[@type="checkbox"]
//label[.='This Is A Test']/parent::*/input[@type="checkbox"]
//label[.='This Is A Test']/ancestor::div/input[@type="checkbox"]
False «
//label[.='This Is A Test']/../input[@type="check"] = //input[@type="checkbox"]
True «
//label[.='This Is A Test']/../input[@type="checkbox"] = //input[@type="checkbox"]
//label[.='This Is A Test']/following::input[@type="checkbox1"] = //input[@type="checkbox1"]
//label[.='This Is A Test']/preceding::input[@type="checkbox"] = //input[@type="checkbox"]
答案 1 :(得分:0)
复选框不是标签的父级。根据你的x路径,它检查父母不是兄弟。
选中复选框旁边的标签。您可以尝试以下x路径。
//input[@type='checkbox']/following-sibling:label[.='This Is A Test']
或
//label[.='This Is A Test']/preceding-sibling:input[@type='checkbox']
答案 2 :(得分:0)
根据标签名称,获取复选框。
//label[text()='This Is A Test']/preceding-sibling::input[@type='checkbox']
xpath的解释: - 首先,您必须获取复选框标签名称。因此,使用<label>
方法使用text()
标记开始您的xpath,然后使用preceding-sibling
关键字获取<input>
标记以及type
属性。