我有HTML
元素(隐藏单选按钮)
<label class="btn btn-primary">
<input class="type_radio" name="type" id="optionWIDGET" autocomplete="off" value="WIDGET" type="radio">
WIDGET
</label>
目标元素是<label>
,我可以使用
driver.find_element_by_xpath('//label[@class="btn btn-primary"]').click()
但问题是,属性class="btn btn-primary"
的类似元素更少。因此,我希望通过添加对子xpath
元素的引用来使我的<input>
更具体。
然而,
driver.find_element_by_xpath('//label[@class="btn btn-primary"]/input[@id="optionWIDGET"]').click()
将点击<input>
,但不会点击<label>
元素。
问题是:如果我知道子元素的定位器,如何点击父元素?
PS。按相同的类名搜索elementS,然后按其索引单击列表中的元素是不可接受的
答案 0 :(得分:1)
您只需使用parent
轴即可。尝试以下XPath。
'//input[@id="optionWIDGET"]/parent::label'
答案 1 :(得分:1)
您可以使用以下XPath
点击label
的父input
:
//input[@id="optionWIDGET"]/parent::label
所以你可以使用:
driver.find_element_by_xpath('//input[@id="optionWIDGET"]/parent::label').click()
请注意,由于id
属性在网页上是唯一的,因此您可以在input
开头选择所需的label[@class="btn btn-primary"]
元素而不使用XPath
。