在 Chromium 浏览器中使用 Selenium

Posted

技术标签:

【中文标题】在 Chromium 浏览器中使用 Selenium【英文标题】:Use Selenium with Chromium Browser 【发布时间】:2011-08-09 13:42:48 【问题描述】:

在 Selenium 选项中(在 Firefox 上)我可以找到 Custom browser

是否可以使用此选项在 Chromium 浏览器(不是 Chrome)中运行 Selenium 测试?

【问题讨论】:

【参考方案1】:

呃,接受的答案没有回答问题。 Google Chrome 基于 Chromium,但它们不是同一个浏览器。

这就是你想要的:(因为 Chromium 不受官方支持)

DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*custom C:/path/to/chromium.exe" , "www.google.com");
selenium.start();

编辑 2018-08:看起来接受的答案在几年后变成了这个答案的副本,所以我原来的评论不再正确。我将它留在那里,但被删除了,因为如果我直接删除它,投票会产生误导。

【讨论】:

@SAndrew 已经在那里了。看起来其他答案几年前将其更改为我的副本,而不是我所指的。 您现在可以添加一些演示代码来了解如何使用它。 @SAndrew 这是文档中的配置行。如果您遇到问题,您应该提出一个新问题。【参考方案2】:

在 unix 系统上,您可以执行类似的操作

sudo ln -s /usr/lib/chromium-browser/chromium-browser /usr/bin/google-chrome

然后您可以在创建 DefaultSelenium 实例时使用“*googlechrome”作为 lauch 参数。

【讨论】:

这对我不起作用。我得到: raise WebDriverException("Can not connect to the ChromeDriver") 我解决了我的问题:我必须下载 ChromeDriver 二进制文件 ***.com/questions/8255929/… code.google.com/p/chromedriver/downloads/…【参考方案3】:

是的。对于铬使用:

DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*custom path/to/chromium" , "www.google.com");
selenium.start();

您可以使用的其他选项是 *custom、*chrome(注意:这不是 Google chrome,它只是一种 firefox 模式)、*googlechrome、*iexplore。请查看 selenium 文档以获取完整的模式列表。

编辑:将 googlechrome 更改为 chromium

【讨论】:

【参考方案4】:

(Python)

您可以使用 chromium-chromedriver 代替原版 chromedriver。它可以通过 apt-get 安装,例如“sudo apt-get install chromium-chromedriver”

然后,在我的脚本中,我将 chromebrowser 和驱动程序配置为使用 chromium exe 和 chromedriver exe,例如:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.BinaryLocation = "/usr/bin/chromium-browser"

driver = webdriver.Chrome(executable_path="/usr/bin/chromedriver",options=options)
driver.get("https://www.google.com")

【讨论】:

【参考方案5】:

这可能太容易了,我要弄清楚我做错了什么,但是......

    ChromeOptions options = new ChromeOptions();

    options.BinaryLocation = "C:\Program Files (x86)\Chromium\Application\chrome.exe");

    using (var chrome = new ChromeDriver(options))

似乎工作......

【讨论】:

【参考方案6】:

是的,是……

您可以在 Linux 中安装,也可以在没有 xwindow 的情况下使用(例如:在网络服务器中)...它对一些测试很有用。

apt install chromium-shell 

在代码中,你需要一个 chromedriver,看这个:

chromedriver

在这种情况下,我将使用 python 代码,以无头模式打开 chromium:

def startBot():
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    driver = webdriver.Chrome('/opt/chromedriver85', options=chrome_options)
    #driver.set_window_size(1366, 728)
    #aguardar carregamento em segundos
    driver.implicitly_wait(5)

    print("get url...")
    driver.get("https://www.google.com")

观察:

无头浏览器是用于自动化测试和不需要可见 UI 外壳的服务器环境的绝佳工具。 (source)

就是这样!

【讨论】:

以上是关于在 Chromium 浏览器中使用 Selenium的主要内容,如果未能解决你的问题,请参考以下文章

在 fla 中禁用 chromium 浏览器更新

解决root用户不能打开Chromium网页浏览器

Websockets 到 localhost 在基于 chromium 的浏览器中失败

如何使 Firefox 的画布与基于 Chromium 的浏览器中的行为相同?

Chromium 浏览器品牌

如何调试最新chromium