首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium - Chrome意外警报打开

Selenium - Chrome意外警报打开
EN

Stack Overflow用户
提问于 2022-10-18 08:45:04
回答 2查看 109关注 0票数 0

使用我一直获得的无头硒运行以下代码:

代码语言:javascript
运行
复制
while True:
time.sleep(5)
try:
    driver.get(URL)
    driver.execute_script("window.alert = function() {};")
    WebDriverWait(driver, 70).until(EC.visibility_of_element_located((By.XPATH, '//span[@data-testid="send"]'))).click()
except Exception as e:
    print(e)

我试着调试这个截屏的无头Selenium,但是我根本看不到任何警告。

我一直得到:

警报文本:{警报文本:消息:意外警报打开:{警报文本:}

EN

回答 2

Stack Overflow用户

发布于 2022-10-18 11:07:09

下面的行指示浏览器显示警报,因为这会导致“意外警报”异常。

代码语言:javascript
运行
复制
 driver.execute_script("window.alert = function() {};")

在浏览器中显示警报时,不可能从selenium中获取屏幕快照,您将得到异常。不过,如果您想处理警报异常,请删除上面的代码并调用下面的方法代码,如下所示: def handle_alert():try: driver.switch_to.alert.accept() print(“警报接受”),除了: print("no“)

票数 0
EN

Stack Overflow用户

发布于 2022-10-18 13:48:56

你得先处理好警报。然后点击一下。

代码语言:javascript
运行
复制
try:
    WebDriverWait(driver, 5).until(EC.alert_is_present())  # this will wait 5 seconds for alert to appear
    alert = browser.switch_to.alert  # or self.driver.switch_to_alert() depends on your selenium version
    alert.accept()
except TimeoutException:
    pass
WebDriverWait(driver, 70).until(EC.visibility_of_element_located((By.XPATH, '//span[@data-testid="send"]'))).click()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74108141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档