【问题标题】:Python Selenium How to handle chrome store alert?Python Selenium 如何处理 chrome 商店警报?
【发布时间】:2021-11-15 00:40:08
【问题描述】:

我正在尝试使用 selenium 安装 chrome 扩展,但是当我单击“添加扩展”时,出现如下图所示的警报,我不确定它是否是警报,但我看到了错误“没有这样的警报”。请帮我

这就是我尝试处理的方式

alert = driver.switch_to.alert
alert.accept()

P/s : 我也尝试了其他一些处理警报的方法,但没有奏效,所以我认为这不是警报。而且我也不想使用 add_extension 选项

【问题讨论】:

标签: python selenium css-selectors


【解决方案1】:

已编辑 好吧,如果你想点击警报消息,请尝试使用这个

 WebDriverWait(driver, wait_time).until(EC.alert_is_present())
 alert_msg = driver.switch_to.alert
 alert_msg.accept()

由于某种原因,我只能在使用 WebDriverWait 等待警报出现时单击警报。

解决方法 如果你想添加一个扩展,你应该使用 options 参数。

from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions()
options.add_extension('path/to/extension.crx')
driver = webdriver.Chrome('path/to/chromedriver.exe', options=options)

要下载 CRX 文件,请使用此扩展名:link

解决方法 2

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC, wait
from time import sleep

import pyautogui

driver = webdriver.Chrome(r'.\drivers\chromedriver.exe')

driver.get('https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa')

elem = WebDriverWait(driver, 5).until(
    EC.element_to_be_clickable((By.XPATH, '/html/body/div[3]/div[2]/div/div/div[2]/div[2]/div/div')))
elem.click()

sleep(3)
pyautogui.hotkey('tab','enter', interval=0.1)

【讨论】:

  • 感谢您的回答,但由于某种原因,我需要通过单击图像来安装它,有什么办法吗?
  • 迈克,我更新了答案,希望这会有所帮助
  • 这正是我试图做的,但它不起作用,我不知道为什么,错误:没有警报
  • @Mike 当您尝试单击警报时,您确定您在正确的窗口中吗?过去我遇到过类似的问题,我发现我必须切换到那个窗口。 #此代码将您移动到非常新的窗口 driver.switch_to.window(driver.window_handles[-1])
  • 我明白,但只有一个窗口,我试图切换到警报以接受它但没有工作,我找不到什么问题:(
猜你喜欢
  • 2022-09-23
  • 2018-12-21
  • 2023-01-02
  • 1970-01-01
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
相关资源
最近更新 更多