python - Selenium 即使在超时后也找不到元素
问题描述
我正在尝试废弃网页,但在单击操作后尝试访问元素时遇到问题。
当循环第二次开始时,我得到“ stale element reference
:element is not attached to the page document
”。
我知道 Selenium 找不到元素 - 另一个fare
和departuretime
div 的复选框。我尝试设置各种超时,尝试阻止,刷新页面。但最终结果是一样的——找不到 element 或 get selenium.common.exceptions.TimeoutException
。
也许有人对问题有什么想法?我只是没有想法,如何解决它:(
PS 我正在使用 Python、Selenium 和 webdriver.chrome。
更新:
我将 webDriver 更改为 Firefox geckodriver,在循环末尾删除了“wait.until(EC.title_contains(fare.get_attribute('id')))”,并在最后添加了“driver.implicitly_wait(10)”。现在它有点工作了。尝试使用 chrome 驱动程序将implicity_wait 添加到代码中,但它导致了相同的异常。那么问题可能出在chrome webdriver上吗???
我的代码示例:
fares =driver.find_elements_by_xpath("//td[@class='inputselect
standardlowfare']/div[1]/input[starts-
with(@id,'FlightSelectOutboundStandardLowFare') and @type='radio']")
wait = WebDriverWait(driver, 10))
# elem = wait.until(EC.title_contains((fare.get_attribute('id'))))
# wait.until(EC.refreshed(EC.staleness_of(fare.get_attribute('id'))))
# driver.implicitly_wait(10)
# wait = WebDriverWait(driver, 30)
for fare in fares:
fare.click()
print("clicked " )
time.sleep(5)
# driver.get(driver.current_url)
# wait.until(EC.title_contains(('selectiontable')))
departureTime = driver.find_element_by_xpath("//* [@id='ctl00_MainContent_ipcAvaDay_upnlResSelection']/div[1]/div/table/tbody/tr[4]/td")
print ("Departure time " + departureTime.text)
wait.until(EC.title_contains(fare.get_attribute('id')))
解决方案
推荐阅读
- python - 我不断收到“线程“流”中没有当前事件循环”
- r - 错误:“gt”的包或命名空间加载失败:“命名空间:fastmap”未导出对象“faststack”
- sql - ER DIAGRAM 绘图
- c++ - 右值参数如何传递到正确的前向函数?
- ruby - ruby 不使用 TLS1.0
- firebase - 使用 Firebase 进行 Google Apps 脚本链接缩短
- asp.net - 导出的 excel 中的 gridview 数据绑定值比应有的值高 10 倍
- node.js - nodemailer:getaddrinfo ENOTFOUND in-v3.mailjet.com
- javascript - 无法更改不和谐频道名称
- java - 如何使用片段集中用户输入