python - 如何等待用户在使用 python 的 Selenium 网络驱动程序中单击按钮?

标签 python python-3.x selenium selenium-webdriver webdriver

我有一个如下所示的登录表单。

enter image description here

用户名、密码、验证码和登录按钮的文本框从一开始就可以点击并可见。 使用 Selenium 我可以提供用户名和密码的输入。 然后,我必须等待用户输入验证码,然后再由用户点击登录按钮。

点击 SIGN-IN 按钮后,webdriver 应该控制下一步。

因此,webdriver 应该等到 SIGN-IN 按钮被点击(对于 user1,可能需要 2 秒才能进入 CAPTCHA,但是对于 user2,可能需要 5 秒才能进入 CAPTCHA)。

这是登录按钮的 HTML。

<button _ngcontent-c4="" class="search_btn" type="submit">SIGN IN</button>

我在下面尝试过,但是,它不起作用。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("url")
btnSignIn = driver.find_element_by_xpath("//form/button[@type='submit' and @class='search_btn']")
WebDriverWait(driver, timeout=600).until(EC.staleness_of(btnSignIn))

我该怎么做? 提前致谢。

最佳答案

您可以实现以下解决方案:

driver = webdriver.Chrome()
driver.get("url")

# Code for entering Username, Password
...
# Wait until user enter Captcha
input("Press ENTER after filling CAPTCHA")
driver.find_element_by_xpath("//form/button[@type='submit' and @class='search_btn']").click()

这应该允许等到用户按下 ENTER 键然后执行提交按钮单击

如果您不希望用户与浏览器交互,而只与控制台交互,您可以改进代码如下:

driver = webdriver.Chrome()
driver.get("url")

# Code for entering Username, Password
...
# Wait until user enter Captcha (in console) and press ENTER 
captcha_input = driver.find_element_by_xpath('//input[@placeholder="Enter Captcha"]')
captcha = input("Enter CAPTCHA and Press ENTER\n")
captcha_input.send_keys(captcha)
driver.find_element_by_xpath("//form/button[@type='submit' and @class='search_btn']").click()

关于python - 如何等待用户在使用 python 的 Selenium 网络驱动程序中单击按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109777/

相关文章:

python - 下载用于 selenium 测试的 chrome 扩展

c# - 无法从 chrome 设置默认下载目录

javascript - 错误: Mismatch in sampling rate: Expected: 16000; Actual: 48000. Tensorflow js抛出错误

python - 三角形对称线成一定角度

python - 使用 Boto3 回调,显示上传进度

python - 选择列表中受其位置影响的随机元素

python - 属性错误 : module 'pygal' has no attribute 'Worldmap'

c# - 为什么 Firefox 需要 GeckoDriver?

python - 使用不同长度的数组列表索引一维数组

Python - 自动创建子记录