我是在 Python 中使用带有 Selenium 的 webdriver 的新手,并且在我正在致力于从 Web 门户自动提取一些数据的事情上遇到了障碍。我正在尝试在文本框中输入日期,但NoSuchElementException无论我尝试以哪种方式搜索元素,我的脚本都会返回一个。使用 Chrome,我可以使用以下 ID 轻松识别检查窗口中的元素,但使用 Python 无法找到它。我试图隔离的 HTML 元素:input id="6A8A7718100001256A44465A5ED3AEAC-toDate" type="text" value="01/15/2019" size="10" maxlength="10" onchange="validateDateField('to', '6A8A7718100001256A44465A5ED3AEAC-fromDate', '6A8A7718100001256A44465A5ED3AEAC-toDate', '6A8A7718100001256A44465A5ED3AEAC-absRangeErr')"这是我尝试过的:from_date = driver.find_elements_by_id("6A8A7718100001256A44465A5ED3AEAC-fromDate")from_date = driver.find_element_by_xpath("//input[@id='6A8A7718100001256A44465A5ED3AEAC-fromDate']")from_date = from_date = driver.find_element_by_css_selector("input[id='6A8A7718100001256A44465A5ED3AEAC-fromDate']")任何帮助表示赞赏,谢谢!
2 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
'-toDate' 之前的字母数字字符似乎是自动生成的。这意味着它们可能会在站点的构建之间发生变化,或者可能在 js 运行时动态创建。
因此我会在 xpath 中使用 contains 关键字,因为它应该对这些更改更加健壮。
to_date = driver.find_element_by_xpath("//input[contains(@id, '-toDate')]")
from_date = driver.find_element_by_xpath("//input[contains(@id, '-fromDate')]")
添加回答
举报
0/150
提交
取消