【发布时间】:2020-11-10 13:08:27
【问题描述】:
我必须使用户提供 OTP 并单击按钮的网站自动化。这部分无法自动化,因为 OTP 未知。所以我需要硒脚本等到用户点击按钮。 有什么办法可以做到这一点?(通过 selenium 而不是与用户交互)
试过这个:
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver, 1).until(lambda d: d.execute_script("return document.getElementById('loginbutton').clicked")=="true")
但是会抛出以下错误:
WebDriverWait(driver, 1).until(lambda d: d.execute_script("return document.getElementById('loginbutton').clicked")=="true") 文件“C:\Users\project\venv\lib\site-packages\selenium\webdriver\support\wait.py”,第 80 行,直到 引发 TimeoutException(消息、屏幕、堆栈跟踪) selenium.common.exceptions.TimeoutException:消息: 进程以退出代码 1 结束
document.getElementById('loginbutton').clicked
在开发人员工具上执行时给出未定义,这可能是导致上述错误的原因吗?
【问题讨论】:
-
.clicked 不是 dom 元素的方法或属性。
-
如何判断按钮是否被点击?
-
如果需要手动完成,我建议使用提示通知用户执行他们必须执行的操作,然后单击“完成”。提示关闭后,您可以恢复 Selenium 调用。
-
只有使用 selenium 就没有其他方法了吗?