当前位置: 首页 > 知识库问答 >
问题:

如何向selenium(chrome)python添加外部扩展

丁昌翰
2023-03-14

更新问题:

在这一点上,如果有人能给我任何提示,我可以添加任何类型的扩展在运行时在selenium中,我的目标是能够运行脚本,并让chrome安装扩展和活动,因为当你运行chromedriver时,chrome就像香草一样(没有安装或活动的扩展)我试过以下答案,但没有运气,我试过查找视频,查看文档,但我总是失败,如果有人有任何见解,我将非常感谢!!!

当我使用selenium时,我试图解除阻止origin extension在我的chrome上工作,上面的代码似乎失败了,我试过几种方法来让它工作,但都失败了,所有试图让它工作的尝试都是基于我在这里或YouTube上读到的!如果有人能帮我,那就太好了!

对于整个代码的导入,我对selenium非常陌生,所以我把所有的导入都放在库中,以弄清楚什么是做什么的。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

第一次尝试:

option = webdriver.ChromeOptions()
option.add_argument('load-extension=' + 'uBlock-Origin_v1.16.18.crx')

第二次尝试:

path_to_extension("C:\Selenium\uBlock-Origin_v1.16.18.crx")

option = webdriver.ChromeOptions()
option.add_argument('load-extension=' + path_to_extension)

第三次尝试:

#adding ublock Origin
path_to_extension = (r'C:\Selenium\1.16.18_0')

# example option: add 'incognito' command line arg to options
option = webdriver.ChromeOptions()
option.add_argument("--incognito")
options.add_argument('load-extension=' + path_to_extension)

前两次尝试的代码是基于这样的想法,即我必须单独安装extensions.crx文件,并放置该文件的目录,以便使用以下方法进行扩展:第一次尝试(不指定目录)

第二次尝试(使用“path_to_directory”变量指定)我使用一个名为“https://chrome-extension-downloader.com/”的站点单独安装了。crx,并将其放置在一个目录中,在本例中是我的C:\selenium\文件夹。

第三次尝试包括我为我的普通chrome浏览器找到我的扩展(ublock)安装的目录,并复制文件夹(在本例中为“1.16.18_0”文件夹并将其放置在(“C:\Selenium”)目录中,以便于访问,我读取以在引用路径之前放置一个r,hense代码。

path_to_extension = (r'C:\Selenium\1.16.18_0')

任何建议都会有帮助,我不介意为了让这个工作完全刮掉我所拥有的,我只是尝试了迄今为止我在互联网上看到的所有方法

我最近也尝试使用以下方法,但失败了

option.add_extension(r'C:\Selenium\uBlock-Origin_v1.16.18.crx')

共有1个答案

轩辕华辉
2023-03-14

原来,我不能启用Ublock的唯一原因只是因为我启用了incognito,这出于某种原因导致扩展无法加载,但一旦我注释掉它,扩展就开始工作美化。我希望这能帮助其他可能处于同样情况的人。

#Adding adblocker
option = webdriver.ChromeOptions()
#option.add_argument("--incognito")
option.add_extension(r"C:\Users\David\Documents\Extensions\uBlock-Origin_v1.16.18.crx")
 类似资料:
  • 我刚刚开始使用servlet和JSP开发在线应用程序。您可能知道,我们需要一个doPost方法,它接收HttpServletRequest请求、HttpServletResponse(Response)参数。 我的问题如下。我知道我需要导入javax.servlet和javax.servlet.http.*包才能使其工作。我记得有一次,一个疯狂的老师告诉我,我可以修改我的jdk/jre/lib文件

  • 我在启用Browsec扩展的情况下打开chrome浏览器的所有努力都失败了。这是我最近尝试的-- 这将导致错误“无法从加载扩展名。清单文件丢失或不可读” 搜索此错误后,我得到Manifest.json文件应该重命名为manifest.json.txt但这样做会导致同样的错误。 任何帮助都将不胜感激

  • 在运行selenium时,我需要从web商店加载一个chrome扩展。在我的研究中,我只发现了如何从本地机器加载扩展。 selenium是否可以从Web存储加载扩展?

  • 直到最近,我还只是在使用一个简单的Java项目。我最近决定将其升级为使用gradle包装器和NetBeans12,但现在该程序无法检测beep3.wav文件。 我看过这个、这个和很多其他的页面,但是没有一个关于向jar添加文件的信息,所以我假设我正在寻找错误的信息。 你能帮个忙吗?我只需要获得wav文件,以便在构建项目时自动插入到jar中。

  • 问题内容: 您好,我尝试使用python使用Selenium安装Chrome扩展程序,我尝试使用ChromeDriver-WebDriver for Chrome 但这不起作用,这是我的代码: 这是我得到的错误: 我尝试用其他3种不同的方式进行此操作,实际上在Stack Overflow中有一个类似的问题,其答案已被弃用,如果再次找到它,我将在此处编写链接。 问题答案: 要使用的python客户端

  • 我可以在Jpanel构造函数中使用add(new Jlabel())在我的Jpanel上创建label,但是一旦我使用其他函数调用add(),label就不会显示在面板上。我做错了什么?