程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python Selenium datepicker 不会点击和超时大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python SELEnium datepicker 不会点击和超时?

开发过程中遇到Python SELEnium datepicker 不会点击和超时的问题如何解决?下面主要结合日常开发的经验,给出你关于Python SELEnium datepicker 不会点击和超时的解决方法建议,希望对你解决Python SELEnium datepicker 不会点击和超时有所启发或帮助;

我正在尝试选择网站的开始日期和结束日期,我尝试了:

driver.get('http://www.sse.com.cn/disclosure/bond/Announcement/company/')
wait = webdriverwait(driver,10)
datefIEld_st = wait.until(EC.element_to_be_clickable((By.ID,"start_date")))
datefIEld_st.click()
day=1
wait.until(EC.element_to_be_clickable((By.XPATH,"//tr/td[text()='{}']".format(str(day))))).click()
datefIEld_ed = wait.until(EC.element_to_be_clickable((By.ID,"END_DATE")))
datefIEld_ed.click()
day_ed=1
wait.until(EC.element_to_be_clickable((By.XPATH,"//tr/td[text()='{}']".format(str(day_ed))))).click()
driver.find_elemenT_By_link_text("查询").click()

不知何故结束日期没有点击, ' 引发 TimeoutException(message,screen,stacktracE)

超时异常'

有人可以帮忙吗?非常感谢!

解决方法

您在页面 "//tr/td[text()='1']" 上有 4 个具有相同 xpath 的元素 当您打开第二个日历时,它会从第一个日历中找到一个并尝试点击它,但无法导致它关闭。

您需要做的第一件事是扩展 xpath 以仅查看您需要的日历。例如 (//div[@class='datetiR_923_11845@epicker-days'])[1] 用于第一个日历,(//div[@class='datetiR_923_11845@epicker-days'])[2] 用于第二个

要注意的第二件事是每个日历上出现 2 次数字 1(一次用于当前日历,另一次用于下一日历)。如果您查看 html 元素,您会看到下个月禁用的元素包含“new”类,因此您需要使用例如扩展 xpath [not(contains(@class,'new'))]

所以你的代码应该是这样的


driver.get('http://www.sse.com.cn/disclosure/bond/Announcement/company/')
wait = WebDriverWait(driver,10)
datefield_st = wait.until(EC.element_to_be_clickable((By.ID,"start_date")))
datefield_st.click()
day=1
wait.until(EC.element_to_be_clickable((By.XPATH,"(//div[@class='datetiR_923_11845@epicker-days'])[1]//tr/td[text()='{}'][not(contains(@class,'new'))]".format(str(day))))).click()
datefield_ed = wait.until(EC.element_to_be_clickable((By.ID,"END_DATE")))
datefield_ed.click()
day_ed=1
wait.until(EC.element_to_be_clickable((By.XPATH,"(//div[@class='datetiR_923_11845@epicker-days'])[2]//tr/td[text()='{}'][not(contains(@class,'new'))]".format(str(day_ed))))).click()
driver.find_elemenT_By_link_text("查询").click()

大佬总结

以上是大佬教程为你收集整理的Python Selenium datepicker 不会点击和超时全部内容,希望文章能够帮你解决Python Selenium datepicker 不会点击和超时所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。