【问题标题】:Selenium Wait for user to click on alert dialog box in pythonSelenium 等待用户点击 python 中的警告对话框
【发布时间】:2023-03-10 07:16:01
【问题描述】:

我在浏览器中创建了一个对话框(当用户输入详细信息发生错误时会发生这种情况)。我需要的是等到用户点击对话框之前自动执行(仅用于测试)。这是我所拥有的

# driver is a chrome web driver
driver.execute_script("alert('qwer');")
wait = WebDriverWait(driver, 10)    
element = wait.until(EC.alert_is_present()) 

我尝试在线搜索,但只有当用户单击网页内的按钮而不是生成的对话框时才得到答案。怎么做(如果可能)?

【问题讨论】:

  • 嘿,您是否正在寻找一种方法来等待警报框可见,或者与警报框交互的方法是否有用?
  • 您可以尝试使用内置的time 模块。我忘了你要调用哪个函数,但是有一个等待一个动作,然后执行下面的代码。
  • 也出于好奇-您发布的代码中的变量“EC”是什么?谢谢:)
  • 我只想等到用户点击对话框。类似于 alert,accept() 但由用户完成。

标签: python selenium-webdriver click alert webdriverwait


【解决方案1】:
from time import sleep
while EC.alert_is_present()(driver):
    sleep(30)

如果您只是想提醒用户,请使用 pymsgbox 或 Telegram API 向他发送消息,

from pymsgbox import alert
alert("Hey User")

【讨论】:

  • 在这里你只是在等待一段时间。所以,无法检查用户点击?!
  • 查看while条件
  • 好吧,即使我点击确定后它也会一直运行。
  • 即使过了 30 多岁?减少秒数。
  • 如果警报已关闭并且我尝试 driver.switch_to.alert 我没有收到 NoAlertPresentException。所以,我想我会在它发生时捕获异常退出循环。谢谢。
猜你喜欢
  • 2017-12-19
  • 2018-05-29
  • 2019-01-11
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多