如何解决Python和Selenium-无法选中复选框
我正在尝试使用Selenium和click函数选中/取消选中一个复选框。但没有马瑟我尝试它不会检查它。一件奇怪的事是,当我在Chrome中检查HTML时,它具有一个ID,但是如果查看源代码,则同一复选框具有另一个ID。
检查html代码:
<div class="checkbox-inline col-md-5 col-lg-3 col-sm-6 m-l-sm rightCheckBox">
<div class="icheckbox_square-blue" style="position: relative;"><input type="checkbox" class="i-checks" name="PanelsContainer:tabsContentView:2:listTabs:rights-group-container:right-type-view:2:right-view:2:affected-right" id="ida1" style="position: absolute; opacity: 0;"><ins class="iCheck-helper" style="position: absolute; top: 0%; left: 0%; display: block; width: 100%; height: 100%; margin: 0px; padding: 0px; background: rgb(255,255,255); border: 0px; opacity: 0;"></ins></div> <label>Delete group</label>
</div>
查看soruce html:
<div class="checkbox-inline col-md-5 col-lg-3 col-sm-6 m-l-sm rightCheckBox">
<input type="checkbox" class="i-checks" name="PanelsContainer:tabsContentView:6:listTabs:rights-group-container:right-type-view:2:right-view:2:affected-right" id="id14e"> <label>Delete group</label>
</div><div class="checkbox-inline col-md-5 col-lg-3 col-sm-6 m-l-sm rightCheckBox">
我100%确保其复选框相同。当我尝试使用查看源代码中的ID时,它什么都找不到,但是当我使用Inspect html代码ID时,代码已完成,但未选中该复选框。
我测试了很多不同的方法,但是没有运气。
element = driver.find_element_by_xpath('//*[@id=ida1')
webdriver.ActionChains(driver).move_to_element(element).click(element).perform()
driver.find_element_by_id('ida1').click()
element = driver.find_element_by_xpath('//*[@id=ida1')
driver.execute_script("arguments[0].click();",element)
有人有什么想法吗?
编辑:
我一直在尝试使用此代码来查找ID,然后将该值用于上面的代码。
find_id = driver.find_elements_by_xpath('//*[@name="PanelsContainer:tabsContentView:2:listTabs:rights-group-container:right-type-view:2:right-view:2:affected-right"]')
for my_id in find_id:
delete_id = my_id.get_attribute("id")
使用该标签时,我总是会得到一个ID,但是如果我将 tabsContentView:2 更改为 tabsContentView:6 (使用检查HTML代码与查看源HTML代码之间的区别) ),它找不到任何ID或其他任何内容。
解决方法
尝试粘贴标签的文本,然后使用在前同级方法。在xpath下使用以标识您的复选框。
//label[text()='Delete group']//preceding-sibling::input[@type='checkbox']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。