- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 Debian Jessie 上使用 Selenium 和 Chromewebdriver 以及 PHP Facebooks Webdriver。我不知道,但 session 不会开始。
我安装了 Java SE 运行时环境(内部版本 1.8.0_161-b12)Java HotSpot(TM) 64 位服务器虚拟机(内部版本 25.161-b12,混合模式)和 Selenium 版本:“3.9.1”,修订版:“63f7b50” ' 和 ChromeDriver (v2.9.248304)。
我通过调用 java -Dwebdriver.chrome.driver/srv/www/XXXX/build/chromedriver -jar selenium-server-standalone-3.9.1.jar
启动 Selenium
结果对我来说似乎还可以。
06:42:17.240 INFO - Selenium build info: version: '3.9.1', revision: '63f7b50' 06:42:17.241 INFO - Launching a standalone Selenium Server on port 4444 2018-02-09 06:42:17.378:INFO::main: Logging initialized @498ms to org.seleniumhq.jetty9.util.log.StdErrLog 2018-02-09 06:42:17.536:INFO:osjs.Server:main: jetty-9.4.7.v20170914, build timestamp: 2017-11-21T12:27:37-09:00, git hash: 82b8fb23f757335bb3329d540ce37a2a2615f0a8 2018-02-09 06:42:17.585:WARN:osjs.SecurityHandler:main: ServletContext@o.s.j.s.ServletContextHandler@3b0143d3{/,null,STARTING} has uncovered http methods for path: / 2018-02-09 06:42:17.596:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@3b0143d3{/,null,AVAILABLE} 2018-02-09 06:42:17.642:INFO:osjs.AbstractConnector:main: Started ServerConnector@596c6acf{HTTP/1.1,[http/1.1]}{0.0.0.0:4444} 2018-02-09 06:42:17.643:INFO:osjs.Server:main: Started @763ms 06:42:17.643 INFO - Selenium Server is up and running on port 4444
如果我按照 PHP 代码运行
try{
$options = new ChromeOptions();
$options->setBinary("/srv/www/XXXX/build/chromedriver");
//$options->addArguments(["--headless", "--window-size=571,42"]);
/*webdriver.chrome.verboseLogging*/
$caps = DesiredCapabilities::chrome();
$caps->setCapability(ChromeOptions::CAPABILITY, $options);
$caps->setPlatform("Linux");
$host = 'http://localhost:4444/wd/hub/';
$driver = RemoteWebDriver::create($host, $caps);
$driver->get('http://www.ende.de/');
$driver->quit();
} catch (\Exception $e){
echo $e->getMessage();
}
结果我得到
Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"Linux","chromeOptions":{"binary":"/srv/www/XXXX/build/chromedriver","args":["--headless","--window-size=571,42"]}}}
Operation timed out after 30001 milliseconds with 0 bytes received
服务器记录这个
2018-02-09 06:43:57.988:INFO:osjshC.ROOT:qtp1712536284-9: org.openqa.selenium.remote.server.WebDriverServlet-4501b7af: Initialising WebDriverServlet 06:43:58.109 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@5d018ae5 06:43:58.117 INFO - /session: Executing POST on /session (handler: BeginSession) 06:43:58.247 INFO - Capabilities are: Capabilities {browserName: chrome, chromeOptions: {args: [--headless, --window-size=571,42], binary: /srv/www/XXXX/buil...}, platform: LINUX} 06:43:58.250 INFO - Capabilities {browserName: chrome, chromeOptions: {args: [--headless, --window-size=571,42], binary: /srv/www/XXXX/buil...}, platform: LINUX} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService) Starting ChromeDriver (v2.9.248304) on port 29459 [0.589][WARNING]: PAC support disabled because there is no system implementation Starting ChromeDriver (v2.9.248304) on port 9515 2018-02-09 06:44:58.965:WARN:osjs.HttpChannel:qtp1712536284-9: /wd/hub/session java.lang.RuntimeException: org.seleniumhq.jetty9.io.EofException at org.openqa.selenium.remote.server.ServletResponseWrappingHttpResponse.setContent(ServletResponseWrappingHttpResponse.java:91) at org.openqa.selenium.remote.server.ServletResponseWrappingHttpResponse.setContent(ServletResponseWrappingHttpResponse.java:83) at org.openqa.selenium.remote.server.commandhandler.ExceptionHandler.execute(ExceptionHandler.java:96) at org.openqa.selenium.remote.server.WebDriverServlet.handle(WebDriverServlet.java:258) at org.openqa.selenium.remote.server.WebDriverServlet.doPost(WebDriverServlet.java:161) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at org.openqa.selenium.remote.server.WebDriverServlet.service(WebDriverServlet.java:121) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:860) at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535) at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548) at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.seleniumhq.jetty9.server.Server.handle(Server.java:530) at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:347) at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:256) at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:102) at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708) at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626) at java.lang.Thread.run(Thread.java:748) Caused by: org.seleniumhq.jetty9.io.EofException at org.seleniumhq.jetty9.io.ChannelEndPoint.flush(ChannelEndPoint.java:292) at org.seleniumhq.jetty9.io.WriteFlusher.flush(WriteFlusher.java:429) at org.seleniumhq.jetty9.io.WriteFlusher.write(WriteFlusher.java:322) at org.seleniumhq.jetty9.io.AbstractEndPoint.write(AbstractEndPoint.java:372) at org.seleniumhq.jetty9.server.HttpConnection$SendCallback.process(HttpConnection.java:800) at org.seleniumhq.jetty9.util.IteratingCallback.processing(IteratingCallback.java:241) at org.seleniumhq.jetty9.util.IteratingCallback.iterate(IteratingCallback.java:224) at org.seleniumhq.jetty9.server.HttpConnection.send(HttpConnection.java:528) at org.seleniumhq.jetty9.server.HttpChannel.sendResponse(HttpChannel.java:783) at org.seleniumhq.jetty9.server.HttpChannel.write(HttpChannel.java:834) at org.seleniumhq.jetty9.server.HttpOutput.write(HttpOutput.java:234) at org.seleniumhq.jetty9.server.HttpOutput.write(HttpOutput.java:218) at org.seleniumhq.jetty9.server.HttpOutput.write(HttpOutput.java:535) at com.google.common.io.ByteStreams.copy(ByteStreams.java:108) at org.openqa.selenium.remote.server.ServletResponseWrappingHttpResponse.setContent(ServletResponseWrappingHttpResponse.java:89) at org.openqa.selenium.remote.server.ServletResponseWrappingHttpResponse.setContent(ServletResponseWrappingHttpResponse.java:83) at org.openqa.selenium.remote.server.commandhandler.ExceptionHandler.execute(ExceptionHandler.java:96) at org.openqa.selenium.remote.server.WebDriverServlet.handle(WebDriverServlet.java:258) at org.openqa.selenium.remote.server.WebDriverServlet.doPost(WebDriverServlet.java:161) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at org.openqa.selenium.remote.server.WebDriverServlet.service(WebDriverServlet.java:121) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:860) at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535) at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548) at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.seleniumhq.jetty9.server.Server.handle(Server.java:530) at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:347) at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:256) at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:102) at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708) at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) at org.seleniumhq.jetty9.io.ChannelEndPoint.flush(ChannelEndPoint.java:270) at org.seleniumhq.jetty9.io.WriteFlusher.flush(WriteFlusher.java:429) at org.seleniumhq.jetty9.io.WriteFlusher.write(WriteFlusher.java:322) at org.seleniumhq.jetty9.io.AbstractEndPoint.write(AbstractEndPoint.java:372) at org.seleniumhq.jetty9.server.HttpConnection$SendCallback.process(HttpConnection.java:800) at org.seleniumhq.jetty9.util.IteratingCallback.processing(IteratingCallback.java:241) at org.seleniumhq.jetty9.util.IteratingCallback.iterate(IteratingCallback.java:224) at org.seleniumhq.jetty9.server.HttpConnection.send(HttpConnection.java:528) at org.seleniumhq.jetty9.server.HttpChannel.sendResponse(HttpChannel.java:783) at org.seleniumhq.jetty9.server.HttpChannel.write(HttpChannel.java:834) at org.seleniumhq.jetty9.server.HttpOutput.write(HttpOutput.java:234) at org.seleniumhq.jetty9.server.HttpOutput.write(HttpOutput.java:218) at org.seleniumhq.jetty9.server.HttpOutput.write(HttpOutput.java:535) at com.google.common.io.ByteStreams.copy(ByteStreams.java:108) at org.openqa.selenium.remote.server.ServletResponseWrappingHttpResponse.setContent(ServletResponseWrappingHttpResponse.java:89) at org.openqa.selenium.remote.server.ServletResponseWrappingHttpResponse.setContent(ServletResponseWrappingHttpResponse.java:83) at org.openqa.selenium.remote.server.commandhandler.ExceptionHandler.execute(ExceptionHandler.java:96) at org.openqa.selenium.remote.server.WebDriverServlet.handle(WebDriverServlet.java:258) at org.openqa.selenium.remote.server.WebDriverServlet.doPost(WebDriverServlet.java:161) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at org.openqa.selenium.remote.server.WebDriverServlet.service(WebDriverServlet.java:121) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:860) at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535) at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548) at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1155) at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.seleniumhq.jetty9.server.Server.handle(Server.java:530) at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:347) at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:256) at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:102) at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247) at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140) at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708) at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626) at java.lang.Thread.run(Thread.java:748)
不知道怎么回事。我尝试安装 chrome 但没有效果。也无法通过 Web 界面启动 chrome session 。我也尝试了不同版本的 Chromewebdriver 和 Selenium。有人知道我错过了什么吗?
最佳答案
如果修复版本兼容性。您需要调整 PHP 代码以适应这个和那个工作:
$options = new ChromeOptions();
$options->setBinary("/usr/bin/google-chrome");
$options->addArguments(["--headless","--disable-gpu", "--no-sandbox"]);
/*webdriver.chrome.verboseLogging*/
$caps = DesiredCapabilities::chrome();
$caps->setCapability(ChromeOptions::CAPABILITY, $options);
$caps->setPlatform("Linux");
$host = 'http://localhost:4444/wd/hub/';
$driver = RemoteWebDriver::create($host, $caps);
$driver->get('http://www.ende.de');
var_dump($driver->getTitle());
$driver->quit();
关于php - 使用参数 : {"desiredCapabilities"} error 为 http POST 到/ session 抛出 Facebook\WebDriver Curl 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709637/
我以前从未做过任何 curl ,所以需要一些帮助。我试图从示例中解决这个问题,但无法理解它! 我有一个 curl 命令,我可以从 Windows 命令行成功运行该命令,该命令行在 Solr 中索引 p
curl -v有什么区别和 curl -I ? 我可以看到 -v是冗长的和 -I是标题。有什么具体的吗? 最佳答案 -I (大写字母 i)在 curl 中表示“没有正文”,对于 HTTP 表示发送 H
我正在使用curl php API访问FTP链接。在特定站点上,它给出错误代码9(拒绝访问)。但是,可以从IE和Firefox访问该链接。 然后,我运行curl命令行,它给出了相同的“访问拒绝”结果。
我已经使用curl有一段时间了,它可以正常工作,但是使用使用用户'domain\username'来验证curl的代理时,无法请求授权。授权方法是NTLM。此代码放入批处理文件中。 代码: curl
“curl”默认使用哪些证书? 例子: curl -I -L https://cruises.webjet.com.au 在 Ubuntu 15.04 上失败 curl: (60) SSL certi
我知道终端输出的一部分是请求的持续时间,剩余时间等。但是是否有一些文档指定了curl命令的终端输出的每一列到底是什么?手册页上的内容非常稀疏。 最佳答案 可能不容易找到,但已在the curl boo
我想通过 curl 在我自己的云服务器上的特定文件夹中上传文件。例如:http://www.myowncloudserver.com/remote.php/webdav/{MY_FOLDER}。此时我
我的网站上有一个密码保护的Web文件夹,我正在使用Curl在另一个域上获取该文件夹,我想要的是:当我尝试打开URL时,应该问我用户名和密码,而不是让它显示“需要授权”。 例: http://www.e
有没有一种方法可以通过简单的Curl获取Rabbitmq中队列的大小(剩余消息)? 类似于curl -xget http://host:1234/api/queue/test/stats 谢谢 最佳答
关闭。这个问题是opinion-based .它目前不接受答案。 2年前关闭。 锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我最近开始在我的
我想访问需要用户名/密码的 URL。我想尝试用curl 访问它。现在我正在做类似的事情: curl http://api.somesite.com/test/blah?something=123 我收
我正在尝试使用 CURL 进行查询ElasticSearch 中的命令在windows平台。 例如:localhost:9200/playground/equipment/1?pretty 我收到一条
我正在尝试使用 Docker 构建和运行 Marklogic 实例。 Marklogic 提供了一些不错的 http api,所以,作为最终 CMD在 Dockerfile 中,我运行两个脚本,它们通
我正在尝试通过 cURL 检索网页的内容(比方说 http://www.foo.com/bar.php )。 当我在浏览器中加载网站时,加载页面时会出现动画,页面最终会显示出来。 但是使用 cURL,
我正在尝试使用带代理的命令行 CURL 获取响应状态代码。 这会返回整个页面,但我只想要状态代码。我怎么做?谢谢。 curl -sL -w -x IP:PORT "%{http_code}\n""ht
我有一段代码检查 http/s 端点的状态和加载时间。然后我会为每个顶级页面检查 1 级 href,以检查页面引用的所有内容是否也加载了 200。 (我查了50个顶级页面,每个顶级页面平均有8个链接)
curl --upload-file 和 curl --form file=@/path/file 有什么区别?这些 HTTP 请求有何不同? 最佳答案 --上传文件 (使用 HTTP 或 HTTPS
我正在尝试使用 system-curl 安装 cmake,使用 ./bootstrap --system-curl,如 here 所示.这样做,我得到了: -- Could NOT find
我需要使用 Curl 下载 Youtube 视频的特定部分。 (假设我想下载前 2MB)我在 Curl 中使用 -r 开关来实现这一点。它适用于非 YouTube 链接,但 Youtube 链接会忽略
我希望在使用 curl 命令从远程服务器下载文件后,将时间戳或日期添加到文件名中。我知道您可以使用 -o 来指定您要为文件命名的内容。我看到过这样的建议:-o "somefile $(date +\"
我是一名优秀的程序员,十分优秀!