当在Windows本地运行Robot Framework编写的自动化测试时,它适用于Chrome/Edge。基本上考虑了浏览器选项,例如headless。如果它在Selenium Grid上运行(作为Linux操作系统的docker容器),则浏览器选项参数仅适用于Chrome节点。浏览器边缘在没有任何设置参数的情况下启动。
以下是针对特定浏览器的代码摘录:
Launch Browser
[Documentation] Opens desired browser type.
Run keyword if '${BROWSER}'=='edge'
... Run Edge
... ELSE
... Run Chrome
Maximize browser window
Run Edge
[Documentation] Set configuration and open Edge browser.
${EDGE_OPTIONS} Catenate SEPARATOR=
... use_chromium=True;add_argument("--headless=true");
... add_argument("--no-sandbox");add_experimental_option("excludeSwitches", ["enable-logging"]);
... add_argument("--proxy-server\=http://myproxy.domain.com:8080")
Open Browser about:blank browser=${BROWSER} options=${EDGE_OPTIONS} remote_url=${SELENIUM_GRID_HUB_URL}
Run Chrome
[Documentation] Set configuration and open Chrome browser
${CHROME_OPTIONS} Catenate SEPARATOR=
... add_experimental_option("excludeSwitches", ["enable-logging"]);add_argument("--headless=true");
... add_argument("--proxy-server\=http://myproxy.domain.com:8080")
Open Browser about:blank browser=${BROWSER} options=${CHROME_OPTIONS} remote_url=${SELENIUM_GRID_HUB_URL}
对于Edge on Linux Docker容器,有什么建议可以忽略浏览器选项?
发布于 2021-10-29 10:38:30
在我们的项目中,我们遇到了同样的问题。我们的项目是使用Selenium 3.141.59编写的。我们的项目是基于java的,为了能够使用MS Edge Chromium,我们必须添加一个由微软提供的新服务,see here。
我们将该服务添加到我们的EdgeDriverFactory中,并能够使用本地Edge Chromium浏览器进行测试。但是,在构建要与selenium网格一起使用的RemoteWebDriver时,当我们尝试使用边缘驱动程序服务来构建它时,它会出现问题
Cannot resolve constructor 'RemoteWebDriver(java.net.URL, com.microsoft.edge.seleniumtools.EdgeDriverService)'
根据您的经验,在不能添加服务构造函数的情况下,即使使用Selenium Grid v4,Edge browser也可以启动,但没有任何设置的参数(选项)。
我们已经将我们的项目迁移到Selenium 4.0.0作为POC,到目前为止,我们还没有通过Selenium Grid v4 (我们使用Selenium提供的基于官方docker的中心和节点)测试Edge Chromium浏览器的问题。
Edge Chromium浏览器启动时所有参数都正确无误,就像我们测试本地浏览器时一样。
https://stackoverflow.com/questions/69721672
复制相似问题