Selenium 如何根据对应的标签名称选择checbox
我对xpath比较陌生,在选择复选框时遇到了问题 下面的表达式很好用Selenium 如何根据对应的标签名称选择checbox,selenium,xpath,automation,Selenium,Xpath,Automation,我对xpath比较陌生,在选择复选框时遇到了问题 下面的表达式很好用 :xpath=//div/label[@for='chkCat2'] 但是我需要根据标签名称选择一个复选框(在本例中为音乐) 不幸的是,这- xpath=.//div[label[contains(text(),'Music')] 正在单击标签,而不是复选框 这怎么可能呢?我也试过这个,但找不到元素: xpath=.//div[label[contains(text(),'Music')]/preceding-siblin
:xpath=//div/label[@for='chkCat2']
但是我需要根据标签名称选择一个复选框(在本例中为音乐)
不幸的是,这-
xpath=.//div[label[contains(text(),'Music')]
正在单击标签,而不是复选框
这怎么可能呢?我也试过这个,但找不到元素:
xpath=.//div[label[contains(text(),'Music')]/preceding-sibling::label]
这是代码的示例:
<input name="ctl00$cphContent$ThreeMedia$categoriesRepeater$ctl01$ctl00"
data-bind="attr:{'id': 'chkCat' + id, 'data-id': id}, checked: selected" id="chkCat2" data-id="2" type="checkbox">
<label data-bind="attr:{'for': 'chkCat' + id}" for="chkCat2" class=" firepath-matching-node"></label>
<label class="chkbox-content margin-bottom-0" data-bind="text: name">Music</label>
音乐
感谢您的帮助尝试下面提到的
xpath
//label[text()= 'Music']/..//preceding-sibling::input[@id='chkCat2']
xpath解释:-使用text
方法和
标记,然后使用前面的兄弟关键字标记
但我需要根据标签名称(本例中为音乐)选择一个复选框
假设div
是提供的复选框
元素的父元素,请尝试使用下面的xpath
:-
.//div[normalize-space(.)='Music']/input
或者更具体地说
.//div[normalize-space(.)='Music']/input[@type='checkbox']
再来一次
.//div[label[text() = 'Music']]/input
我对代码的解释对你有帮助吗?如果确实如此,请将此答案标记为已接受