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

设置chrome浏览器二进制通过在Python中的chrome驱动程序

程城
2023-03-14

我将Selenium与Python Chrome webdriver一起使用。在我的代码中,我使用了:

driver = webdriver.Chrome(executable_path = PATH_TO_WEBDRIVER)

webdriver指向webdriver可执行文件。有没有办法将webdriver指向Chrome浏览器二进制文件?

https://sites.google.com/a/chromium.org/chromedriver/capabilities他们有以下产品(我想这就是我要找的):

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");

有人举过Python的例子吗?

共有3个答案

闻人昕
2023-03-14

有没有办法将webdriver指向Chrome浏览器二进制文件?

正如其他人已经指出的,使用二进制位置。然而,Chrome的位置根据平台的不同而变化。Fedora和Ubuntu使用不同的位置。因此,您可能需要使用以下内容:

def get_chrome():
    if os.path.isfile('/usr/bin/chromium-browser'):
        return '/usr/bin/chromium-browser'
    elif os.path.isfile('/usr/bin/chromium'):
        return '/usr/bin/chromium'
    elif os.path.isfile('/usr/bin/chrome'):
        return '/usr/bin/chrome'
    elif os.path.isfile('/usr/bin/google-chrome'):
        return '/usr/bin/google-chrome'
    else:
        return None

然后:

if version.parse(selenium.__version__) >= version.parse("3.0"):
    opts = Options()
    opts.binary_location = get_chrome()
    opts.add_argument('--headless')
    opts.add_argument('--no-sandbox')
    opts.add_argument('--disable-dev-shm-usage')

    driver = webdriver.Chrome(chrome_options=opts)
    driver.maximize_window()
else:
    opts = Options()
    opts.headless = True
    opts.binary_location = get_chrome()

    driver = webdriver.Chrome(chrome_options=opts)
    driver.maximize_window()

agent = driver.execute_script('return navigator.userAgent')
陶锋
2023-03-14

非常感谢,我为此挣扎了2.5个小时,因为我不知道如何在Python中设置Chrome可执行路径。现在工作

options = Options()
options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
莫振
2023-03-14

您可以使用Python通过ChromeDriver设置Chrome浏览器二进制位置,方法如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
driver.get('http://google.com/')
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
cap = DesiredCapabilities.CHROME
cap = {'binary_location': "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"}
driver = webdriver.Chrome(desired_capabilities=cap, executable_path="C:\\Utility\\BrowserDrivers\\chromedriver.exe")
driver.get('http://google.com/')
from selenium import webdriver
import selenium.webdriver.chrome.service as service
service = service.Service('C:\\Utility\\BrowserDrivers\\chromedriver.exe')
service.start()
capabilities = {'chrome.binary': "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://www.google.com')
 类似资料:
  • 问题内容: 我将Selenium与Python Chrome webdriver一起使用。在我的代码中,我使用了: 将webdriver指向webdriver可执行文件。是否可以将webdriver指向Chrome浏览器二进制文件? 在https://sites.google.com/a/chromium.org/chromedriver/capabilities中,它们具有以下内容(我认为这是我

  • 上面说 ChromeDriver是一个实现W3C WebDriver标准的独立服务器 看起来W3C WebDriver标准只定义了自动化程序和Chromedriver之间的接口。Chromedriver充当HTTP服务器,从自动化程序获取命令。 但是ChromeDriver如何与Chrome通信呢? 还是通过HTTP协议? 如果是,我们在哪里可以得到关于细节的留档?Chrome内部的哪个组件负责处

  • 我正在使用ChromeDriver V2.24,我的系统中有Chrome Browser52(未安装,可执行文件)。 NosuchSessionException:没有这样的会话 控制台: 注意:在Windows安全更新之前,当我使用ChromeDriver3.1和Chrome58时,我的脚本运行良好。更新后,我无法启动Chrome浏览器,因为它不是启动浏览器,而是在后台运行。

  • 我想在VS 2010 C#中使用Selenium Web驱动程序打开Chrome浏览器,导航到某个网页,然后关闭驱动程序,但保持浏览器打开。我意识到,我将不得不手动关闭浏览器后,我同意这一点。 到目前为止我有: 我已经尝试了以下所有作为最后一行 有什么想法吗?

  • 问题内容: 我想知道,在IE和Firefox中,您是否可以设置浏览器,以允许跨域调用。 我在chrome中找不到任何选项(实际上,通常根本没有太多选项…) 有关于about:config之类的东西吗? 亲切的问候 -安迪 问题答案: 不好意思 Chrome和Firefox通过W3C CORS规范(跨源资源共享)支持跨域请求,但是远程主机必须启用它。如果远程主机明确支持它,那么您不必对XMLHttp

  • 问题内容: 抱歉,您有愚蠢的问题,但是如何在webdriver中启动Chrome浏览器?我知道我必须指定chromedriver.exe的路径。问题是我无法下载chromedriver.exe,它已被删除。我发现的文件也没有.exe扩展名。我正在使用Eclipse,Java。请帮忙!我按照建议的步骤进行了所有操作,但是没有用。这是我的代码: 这是错误: 失败:测试java.lang.Illegal