使用selenium运行两个不同版本的chrome(Python)

时间:2017-07-02 04:29:34

标签: python google-chrome selenium

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

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

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

1 个答案:

答案 0 :(得分:2)

一种方法是使用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)