2016-03-04 22 views
1

(隱藏按鈕)如何點擊我有以下<code>HTML</code>元素的父元素

<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"。所以我想通過添加對子元素<input>的引用使我的xpath更具體。

然而,

driver.find_element_by_xpath('//label[@class="btn btn-primary"]/input[@id="optionWIDGET"]').click() 

會點擊<input>,但不能在<label>元素。

現在的問題是:如果我知道子元素的定位器,如何點擊父元素?

PS。搜索用相同的類名的元素,然後元素上點擊通過其索引列表是不能接受的

回答

1

您可以簡單地使用parent軸。嘗試以下XPath。

'//input[@id="optionWIDGET"]/parent::label' 
+0

如果我輸入沒有必須的ID,但只有一個人的名字這項工作,? – roastbeeef

+0

@roastbeeef - 在解決方案,而不是'id'使用'name'。這應該夠了吧。 – JRodDynamite

1

您可以使用以下XPath點擊的input的父label

//input[@id="optionWIDGET"]/parent::label 

所以,你可以使用:

driver.find_element_by_xpath('//input[@id="optionWIDGET"]/parent::label').click() 

注意,由於id屬性是唯一的在網頁上,您可以選擇所需的input元素,而不必在開始時使用label[@class="btn btn-primary"] ning你的XPath