在 Chromium 浏览器中使用 Selenium

问题描述 投票:0回答:8

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

Custom browser
.

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

selenium compatibility chromium web-testing
8个回答
30
投票

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

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

9
投票

在 Unix 系统上,你可以做类似的事情

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

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


5
投票

(蟒蛇)

您可以使用 chromium-chromedriver 代替 vanilla 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")

4
投票

是的。对于铬,使用:

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

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


2
投票

这可能太简单了,我会弄清楚我做错了什么,但是......

    ChromeOptions options = new ChromeOptions();

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

    using (var chrome = new ChromeDriver(options))

似乎工作...


0
投票

是的,这是...

在 Linux 中,您也可以在没有 X Window 的情况下安装和使用(例如:在网络服务器中)......这对某些测试来说很好。

apt install chromium-shell

在代码中,您需要一个 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 外壳的自动化测试和服务器环境的绝佳工具。 (来源

就是这样!


0
投票

对我来说,只需添加:

chrome_options.binary_location = "/usr/bin/chromium-browser"

示例代码:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=1, size=(1600, 902))
display.start()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--profile-directory=Default")
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--disable-plugins-discovery")
chrome_options.add_argument("--start-maximized")
chrome_options.binary_location = "/usr/bin/chromium-browser"
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.delete_all_cookies()
driver.set_window_size(800, 800)
driver.set_window_position(0, 0)
print("arguments done")
driver.get("http://google.com")

它适用于

Version 104.0.5112.101 (Official Build) Built on Ubuntu, running on Ubuntu 18.04 (64-bit)
.


0
投票

在 Ubuntu 上,我通过安装

chromium-chromedriver
包,像标准 Chrome 一样从 Selenium 启动它来运行 Chromium,没有任何修改。

长话短说:

如果您碰巧运行 Ubuntu,切换到那个有问题的 Chromium snap,则已经包含合适的 chromedriver。可执行文件已经在

PATH
上:
/snap/bin/chromium.chromedriver
.

如果您还碰巧使用在

chromedriver
中搜索
PATH
的 vanilla selenium,那么所谓的过渡性无所事事的包
chromium-chromedriver
(dpkg) 实际上提供了:一个“可执行文件”(shell 脚本)
/usr/bin/chromedriver
执行上面提到的 snap 版本。

在这个Ubuntu 20.04(Focal Fossa)安装中,我也碰巧有这个过渡的

chromium-browser
包,它可能根本不需要,但它也提供了一个(无用的?)包装器并让我尝试匹配
 chromium-chromedriver
包版本第一。我在焦点更新中都有
1:85.0.4183.83-0ubuntu0.20.04.2

python3 -m venv venv
. venv/bin/activate
pip install selenium
python3

REPL中:

from selenium import webdriver
d = webdriver.Chrome()
© www.soinside.com 2019 - 2024. All rights reserved.