当前位置: 首页 > 面试题库 >

如何使用Selenium连接到Chromium Headless

劳夕
2023-03-14
问题内容

我想将无头铬用于使用selenium的自动化测试。(https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md)

我确实已经在9222上运行了无头版本。因此,如果我打开http://10.252.100.33:9222/json/,我会得到

[ {
   "description": "",
   "devtoolsFrontendUrl": "/devtools/inspector.html?ws=127.0.0.1:9223/devtools/page/0261be06-1271-485b-bdff-48e443de7a91",
   "id": "0261be06-1271-485b-bdff-48e443de7a91",
   "title": "The Chromium Projects",
   "type": "page",
   "url": "https://www.chromium.org/",
   "webSocketDebuggerUrl": "ws://127.0.0.1:9223/devtools/page/0261be06-1271-485b-bdff-48e443de7a91"
} ]

下一步,我想将selenium连接到无头铬上。但是当我尝试

final DesiredCapabilities caps = DesiredCapabilities.chrome();
final WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9222/json"), caps);
driver.get("http://www.google.com");

我确实得到以下注销

Jän 24, 2017 7:14:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Jän 24, 2017 7:14:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Falling back to original OSS JSON Wire Protocol.
Jän 24, 2017 7:14:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Falling back to straight W3C remote end connection

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'Geralds-MacBook-Pro.local', ip: '192.168.0.249', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_111'
Driver info: driver.version: RemoteWebDriver

问题是:

  • RemoteWebDriver是否是连接无头铬的正确驱动程序?
  • 我阅读了有关DevTool协议的信息(https://docs.google.com/presentation/d/1gqK9F4lGAY3TZudAtdcxzMQNEE7PcuQrGu83No3l0lw/),但是我不确定如何使用selenium创建这样的客户端。
  • 使用Chrome DevTools连接Chromium Headless的工作原理(https://developers.google.com/web/tools/chrome-devtools/remote-debugging/)除了一些分段保管库;-)

问题答案:

我认为自述文件有点误导。您不必自己启动Chromium,也可以使用RemoteWebDriver。确保已安装chromedriver(https://sites.google.com/a/chromium.org/chromedriver/home)。

  • 启动chromedriver(例如./chromedriver./chromedriver --port=9515
  • 然后,您告诉chromedriver使用Chromium而不是Chrome
  • 添加--headless为附加参数

代码应如下所示:

final ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary("/usr/bin/chromium-browser");
chromeOptions.addArguments("--headless");
desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
WebDriver driver = new RemoteWebDriver(url, desiredCapabilities);

在Ubuntu Linux上为我工作。



 类似资料:
  • 问题内容: 我正在使用Weblogic,Ejb3.0。Java 1.6 我需要通过Java代码访问Active Directory。我读了几种方法(Kerberos,LDAP) 有人可以建议我这样做的舒适​​方式吗?在哪里可以找到一些完整的代码示例, 谢谢,雷。 问题答案: 这是一个简单的代码,用于在W2K3上的JNDI中进行身份验证并进行LDAP搜索:

  • 问题内容: 我想将无头铬用于使用硒的自动化测试。(https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md) 我确实已经在9222上运行了无头版本。因此,如果我打开http://10.252.100.33:9222/json/,我会得到 下一步,我想将硒连接到无头铬上。但是当我尝试 我确实得到以下注销 问题是:

  • 这是我的: 和Dockerfile goparser: 连接MongoDB需要使用哪个地址?

  • JDK 1.8.0_66 域模式 专用远程处理套接字 null 调试[org.jboss.remoting.Remote.connection](默认I/O-5)JBREM000200:远程连接失败:java.io.ioException:XNIO000804:收到无效消息长度为1195725856 我想在Windows客户端上使用VisualVM进行连接,所以我使用了Wildfly jconso

  • 问题内容: 文件包含和及其说明(+ )。 是否可以依靠上述文件建立连接?(仅提供数据库名称即可): 为了找到该文件,我必须知道默认的Oracle主目录,我需要在Windows注册表中检入然后具有所有文件,然后检查哪个文件首先出现在上。有没有办法在客户端计算机上自动找到此文件? 问题答案: 我什至不知道可以在瘦驱动程序中使用tnsnames,但是显然它是在版本10中添加的: http://docs.

  • 问题内容: 我们知道不建议在Amazon实例外部访问ElastiCache,因此我们仅在Amazon EC2实例内部进行尝试。 我们有一个具有9个节点的ElastiCache Redis集群 。当我们尝试使用常规redis实现连接到它时,它会引发一些Moved错误 根据@Miller尝试了重试策略方法。还尝试过使用不稳定和稳定(可怜的人)实现的RedisCluster。 这些实现均无作用。有什么建