使用Python/Selenium从网站中选择复选框
尝试创建一个简单的脚本,用python/selenium选中/取消选中某些框 我已经扔掉了我手头的那本小书,无法让它正确识别元素。我尝试过(可能错误地)css、xpath、标签和文本 任何帮助都将不胜感激 代码试用:使用Python/Selenium从网站中选择复选框,python,angularjs,selenium,xpath,webdriverwait,Python,Angularjs,Selenium,Xpath,Webdriverwait,尝试创建一个简单的脚本,用python/selenium选中/取消选中某些框 我已经扔掉了我手头的那本小书,无法让它正确识别元素。我尝试过(可能错误地)css、xpath、标签和文本 任何帮助都将不胜感激 代码试用: driver.find_elements_by_class_name('list-group-items')[1].click() HTML: 步骤2:选择数据字段 标准字段: 日期
driver.find_elements_by_class_name('list-group-items')[1].click()
HTML:
步骤2:选择数据字段
标准字段:
-
日期
看来你很接近了。根据您的代码试用,使用find\u element\u by\u class\u name('list-group-items')[1]
,而不是find\u element\u by\u class\u name('list-group-item')
会让您走得更近
但是,由于所需元素是元素,因此要单击与文本相关联的复选框,例如,日期、时间等,您必须诱导WebDriverWait使元素可单击,并且您可以使用以下任一解决方案:
- 日期:
- 时间:
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
列表组项目ng绑定ng范围列表组项目成功
更改为列表组项目ng绑定ng范围
,因为这是我看到的唯一区别,但这给了我相同的错误。我已交叉检查了您提供的HTML。似乎两个
都具有以下类列表组项ng绑定ng范围列表组项成功
。从这个角度来看,我们的解决方案一定奏效了。我敢肯定,一旦您在更改HTML DOM的日期调用click()
。因此XPath也应该有所不同。您是否可以在此时交叉检查HTML(Date
已单击,但Time
未单击)?时间的HTML是相同还是不同?谢谢@Debanjamb。这就是问题所在“//li[@class='list-group-item ng binding ng scope list group item success'和
”//li[@class='list-group-item ng binding ng scope'并包含`我以为我已经检查过了,再次检查后它工作了。感谢您的帮助。
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='list-group-item ng-binding ng-scope list-group-item-success' and contains(@ng-repeat,'exportFormats')][contains(.,'Date')]/input[@class='ng-pristine ng-untouched ng-valid']"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='list-group-item ng-binding ng-scope list-group-item-success' and contains(@ng-repeat,'exportFormats')][contains(.,'Time')]/input[@class='ng-pristine ng-untouched ng-valid']"))).click()
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC