Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 如何根据对应的标签名称选择checbox_Selenium_Xpath_Automation - Fatal编程技术网

Selenium 如何根据对应的标签名称选择checbox

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比较陌生,在选择复选框时遇到了问题

下面的表达式很好用

: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

我对代码的解释对你有帮助吗?如果确实如此,请将此答案标记为
已接受