如何解决Python和Selenium-按标签文本查找元素
我正在尝试使用python和Selenium Webdriver在html网站上的大量复选框中找到并单击一个元素(复选框)。 HTML代码如下:
<div class="checkbox-inline col-md-5 col-lg-3 col-sm-6 m-l-sm rightCheckBox">
<input type="checkbox" checked="checked" class="i-checks" name="PanelsContainer:tabsContentView:5:listTabs:rights-group-container:right-type-view:2:right-view:2:affected-right" disabled="disabled" id="id199"> <label>Delete group</label>
</div>
我的问题是,唯一的唯一标识符是:
<label>Delete group</label>
其他所有复选框或页面之间的更改都使用所有其他元素/ id /名称。 我尝试了以下代码:
driver.find_element_by_xpath("//label[contains(text(),'Delete group')]").click()
但是使用此方法时只会出现错误。 错误:元素不可交互
有人能帮助吗?
解决方法
尝试下面的xpath
//label[contains(text(),'Delete group')]//ancestor::div//input
,
尝试使用Javascript。
checkBox = driver.find_element_by_xpath("//label[text()='Delete group']//ancestor::div//input")
# Scroll to checkbox if its not in screen
driver.execute_script("arguments[0].scrollIntoView();",checkBox)
driver.execute_script("arguments[0].click();",checkBox)
注意:根据您共享的HTML,复选框处于“禁用”状态,因此我不确定单击将触发任何操作。但是,以上代码将单击您的复选框。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。