在 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的主要内容,如果未能解决你的问题,请参考以下文章
Websockets 到 localhost 在基于 chromium 的浏览器中失败