在 Selenium 选项中(在 Firefox 上)我可以找到
Custom browser
.
是否可以使用此选项在 Chromium 浏览器(不是 Chrome)中运行 Selenium 测试?
这就是你想要的:(因为官方不支持 Chromium)
DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*custom C:/path/to/chromium.exe" , "www.google.com");
selenium.start();
在 Unix 系统上,你可以做类似的事情
sudo ln -s /usr/lib/chromium-browser/chromium-browser /usr/bin/google-chrome
然后您可以在创建 DefaultSelenium 实例时使用“*googlechrome”作为启动参数。
(蟒蛇)
您可以使用 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")
是的。对于铬,使用:
DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*custom path/to/chromium", "www.google.com");
selenium.start();
您可以使用的其他选项是 *custom、*chrome(注意:这不是 Google chrome;它只是 Firefox 模式)、*googlechrome、*iexplore。请查看 Selenium 文档以获取完整的模式列表。
这可能太简单了,我会弄清楚我做错了什么,但是......
ChromeOptions options = new ChromeOptions();
options.BinaryLocation = "C:\Program Files (x86)\Chromium\Application\chrome.exe");
using (var chrome = new ChromeDriver(options))
似乎工作...
是的,这是...
在 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 外壳的自动化测试和服务器环境的绝佳工具。 (来源)
就是这样!
对我来说,只需添加:
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)
.
在 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()