【问题标题】:XPath for attribute containing spaces包含空格的属性的 XPath
【发布时间】:2019-07-26 21:22:47
【问题描述】:

我正在尝试在 xpath 中选择一个名为“已检查类型”的复选框属性。

我试过 //[@checked type], //[@checked-type], //[@checked_type], 和 //[@ checked\stype] 但它们似乎都没有选择任何元素,而 //*[@type] 工作正常。

是否可以选择带有空格的属性?

【问题讨论】:

  • 你能分享一个你想匹配的元素的例子吗?
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。见:minimal reproducible example
  • 发布相关的 HTML。

标签: python html selenium xpath


【解决方案1】:

checkedtype 是 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>

如果您想将复选框/收音机设置为默认“选中”,那么您可以使用不带属性值的checkedchecked='checked'

有关详细信息,请参阅this 页面中的checked 属性。

那么现在,让我们看看如何选择元素。

复选框

 //input[@checked][@type='checkbox']
 //input[@checked='checked'][@type='checkbox']

电台:

 //input[@checked][@type='radio']
 //input[@checked='checked'][@type='radio']

【讨论】:

    猜你喜欢
    • 2018-05-22
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多