【问题标题】:Run two different versions of chrome using selenium (Python)使用 selenium (Python) 运行两个不同版本的 chrome
【发布时间】:2017-07-02 04:29:34
【问题描述】:

我有一个场景可以在 Windows 中运行不同版本的 chrome(现在我们只考虑两个)。我找到了以下运行 chrome 实例的方法:

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % proxy)
driver = webdriver.Chrome(
    chrome_options=chrome_options
)

我有默认的 chrome 和另一个版本(位于下载目录中)。如何运行任何所需的版本?

编辑:

我写了一些博客herehere。希望这对某人有所帮助。

【问题讨论】:

  • ChromeOptions object 中似乎有一个 binary 选项,用于配置 Chrome 二进制文件的路径。虽然这似乎只与本地 Chrome 实例有关。在针对集线器或远程独立服务器运行时,此选项似乎没有意义,因为应该在 ChromeDriver 端配置多个版本到路径映射(传递给 selenium 服务器) 并且 ChromeOptions 应该提供一个 version 配置(或类似配置)来指示服务器选择二进制文件。
  • 这个有一步一步的帮助e4example.blogspot.com/2017/07/…
  • BrowserStack of Sauce Labs 也是这里的选项 - 通过功能提供您想要的浏览器版本。
  • @alecxe 你能给我一些链接吗?

标签: python google-chrome selenium


【解决方案1】:

一种方法是使用Options 类在功能中定义位置:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions()
options.binary_location = r'C:/chromium-48/chrome.exe'
driver = webdriver.Chrome(chrome_options=options)

DesiredCapabilities:

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

capa = DesiredCapabilities.CHROME;
capa['chromeOptions'] = {
  'binary': r'C:/chromium-48/chrome.exe',
  'args': []
}

driver = webdriver.Chrome(desired_capabilities=capa)

但是,如果您正在寻找可扩展的解决方案,那么您应该设置一个具有不同版本的网格:

  • 启动集线器:
java -jar selenium-server-standalone-2.53.1.jar -role hub -host 0.0.0.0 -port 4444
  • 为版本 48 启动节点:
java -jar selenium-server-standalone-2.53.1.jar 
 -role node 
 -hub http://localhost:4444/grid/register
 -browser platform=WINDOWS,browserName=chrome,version=48,chrome_binary="C:/chromium-48/chrome.exe"
  • 为版本 54 启动节点:
java -jar selenium-server-standalone-2.53.1.jar 
 -role node 
 -hub http://localhost:4444/grid/register
 -browser platform=WINDOWS,browserName=chrome,version=54,chrome_binary="C:/chromium-54/chrome.exe"

然后您可以直接在功能中选择版本:

from selenium import webdriver
capa = {'browserName': 'chrome', 'version': '48', 'platform': 'ANY'}
driver = webdriver.Remote(command_executor='http://localhost:4444/wd/hub', desired_capabilities=capa)

【讨论】:

  • 我会试试这个,很快就会通知你。谢谢
  • 能否给我相关的链接?
  • 你想要一个与什么相关的链接?
  • 任何相关链接。网络上是否有任何教程/文档?
  • options.binary_location = r'C:/chromium-48/chrome.exe' 现在这个就够了。如果需要,将来会查看网格。谢谢你的努力。 :)
猜你喜欢
  • 2018-10-11
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 2017-09-10
  • 1970-01-01
  • 2021-02-22
相关资源
最近更新 更多