【问题标题】:XPath for attribute containing spaces包含空格的属性的 XPath
【发布时间】:2019-07-26 21:22:47
【问题描述】:
我正在尝试在 xpath 中选择一个名为“已检查类型”的复选框属性。
我试过 //[@checked type], //[@checked-type], //[@checked_type], 和 //[@ checked\stype] 但它们似乎都没有选择任何元素,而 //*[@type] 工作正常。
是否可以选择带有空格的属性?
【问题讨论】:
标签:
python
html
selenium
xpath
【解决方案1】:
checked 和 type 是 2 个属性,但不是一个,这就是您无法使用 //[@checked type], //[@checked-type], //[@checked_type], and //[@checked\stype] 定位器选择元素的原因。
您可以使用 checked 属性定义复选框状态,如下面的示例 html 所示。
<!DOCTYPE html>
<html>
<body>
<div>
<label> Checkbox Checked - Using checked attribute value</label>
<input checked='checked' type='checkbox'></input>
</div>
<div>
<label> Checked - simple approach</label>
<input checked type='checkbox' ></input>
</div>
<div>
<label> No Checked attribut</label>
<input type='checkbox'></input>
</div>
<div>
<label> Radio Checked - Using checked attribute value</label>
<input checked='checked' type='radio'></input>
</div>
<div>
<label> Radio Not Checked - No checked attribute value</label>
<input type='radio'></input>
</div>
</body>
</html>
如果您想将复选框/收音机设置为默认“选中”,那么您可以使用不带属性值的checked 或checked='checked'。
有关详细信息,请参阅this 页面中的checked 属性。
那么现在,让我们看看如何选择元素。
复选框
//input[@checked][@type='checkbox']
//input[@checked='checked'][@type='checkbox']
电台:
//input[@checked][@type='radio']
//input[@checked='checked'][@type='radio']