我正在尝试使用Python Selenium安装chrome扩展程序。 当我点击添加到chrome按钮时,会弹出一个弹出窗口(不知道是否是java脚本),询问:"添加扩展名","取消"。我想点击"添加扩展程序"但是我得到了以下错误:
selenium.common.exceptions.NoAlertPresentException:消息:没有警报打开
我的代码:
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.implicitly_wait(30)
driver.get("https://chrome.google.com/webstore/detail/buyhatke/jaehkpjddfdgiiefcnhahapilbejohhj?hl=en")
time.sleep(15)
element=driver.find_element_by_css_selector("body > div.F-ia-k.S-ph.S-Rc-qa > div.h-F-f-k.F-f-k > div > div > div.e-f-o > div.h-e-f-Ra-c.e-f-oh-Md-zb-k >
div.dd-Va.g-c-wb.g-eg-ua-Uc-c-za.g-c-Oc-td-jb-oa.g-c")
element.click()
alert = driver.switch_to.alert
alert.accept()
帮我安装它。
更新的代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import os
executable_path = "C:\\Users\\SACHIN\\AppData\\Local\\Programs\\Python\\Python36\\chromedriver"
os.environ["webdriver.chrome.driver"] = executable_path
chrome_options = Options()
chrome_options.add_extension("C:\\Users\\SACHIN\\AppData\\Local\\Google\\chrome\\User Data\\Default\\Extensions\\jaehkpjddfdgiiefcnhahapilbejohhj\\
3.4.143_0")
driver = webdriver.Chrome(executable_path=executable_path,chrome_options=chrome_options)
driver.get("http://stackoverflow.com")
driver.quit()
答案 0 :(得分:0)
这是因为您尝试使用switch_to.alert
选择的下载选项弹出实际上并不是弹出的JS警告。您无法选择使用Selenium的switch_to
方法。您需要使用DesiredCapabilities
类来选择此选项,然后在代码中使用它。
根据ChromeDriver文档,给定here,请使用packed(带有.crx
扩展名的)或解压缩的扩展文件(包含扩展名的目录,包括manifest.json file
)和使用DesiredCapabilities
加载它。这可以使用
from selenium.webdriver.chrome.options import Options
executable_path = "path_to_webdriver"
os.environ["webdriver.chrome.driver"] = executable_path
chrome_options = Options()
chrome_options.add_extension('path_to_extension')
driver = webdriver.Chrome(executable_path=executable_path,chrome_options=chrome_options)
driver.get("http://stackoverflow.com")
driver.quit()