在Chromium浏览器中使用Selenium

vi4fp9gy  于 2023-01-30  发布在  其他
关注(0)|答案(8)|浏览(185)

在Selenium选项(Firefox上)中,我可以找到**Custom browser**。
是否可以使用此选项在 Chromium Browser(非Chrome)中运行Selenium测试?

9fkzdhlc

9fkzdhlc1#

嗯,公认的答案并没有回答这个问题。谷歌Chrome是基于 chrome ,但他们不是同一个浏览器。
这就是你想要的:(因为官方不支持Chromium)

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

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

3b6akqbq

3b6akqbq2#

在unix系统上,您可以执行以下操作

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

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

ycggw6v2

ycggw6v23#

(巨蟒)
你可以用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")
polhcujo

polhcujo4#

是。对于 chrome 用途:

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

您可以使用的其他选项是 * 自定义、* chrome (注:这不是谷歌浏览器,它只是一个火狐模式),*googlechrome,*iexplore。请检查 selenium 文档的完整列表的模式。

**编辑:**将谷歌 chrome 更改为 chrome

7nbnzgx9

7nbnzgx95#

可能太简单了,我会找出我做错了什么,但是...

ChromeOptions options = new ChromeOptions();

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

    using (var chrome = new ChromeDriver(options))

似乎起作用了...

6gpjuf90

6gpjuf906#

是的,它是......
在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 shell 。(source
就是这样!

ffx8fchx

ffx8fchx7#

对我来说,只要加上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)

mctunoxg

mctunoxg8#

    • 在Ubuntu上,我安装了chromium-chromedriver软件包,从Selenium启动Chromium,就像标准的Chrome一样,没有做任何修改。**
TL; DR:

如果你碰巧运行Ubuntu,它切换到了那个有问题的Chromium快照,一个合适的chromedriver已经包含在内了。/snap/bin/chromium.chromedriver.
如果您碰巧使用了一个在PATH中搜索chromedriver的vanilla selenium,那么所谓的过渡性不做任何事情的包chromium-chromedriver(dpkg)实际上提供了:执行上述快照版本的"可执行文件"( shell 脚本)/usr/bin/chromedriver
在这个Ubuntu焦点安装中,我碰巧有一个过渡的chromium-browser包,它可能根本不需要,但它也提供了一个(无用的?) Package 器,让我先尝试一个匹配的chromium-chromedriver包版本。

$ python3 -m venv venv
$ . venv/bin/activate
$ pip install selenium
$ python3
>>> from selenium import webdriver
>>> d = webdriver.Chrome()

相关问题