我正在尝试运行facebook/php-webdriver
包,但我被困在这个阶段。
它在我的本地主机中工作正常,但在我的 Ubuntu 服务器中,经过一段时间的等待,我收到此错误
使用params 为 http POST 到/session 抛出的卷曲错误: {"desiredCapabilities":{"browserName":"firefox"}}操作超时 30001 毫秒后,接收 0 字节
这是我的代码的样子
$browser_type = 'chrome';
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = array(FacebookWebDriverRemoteWebDriverCapabilityType::BROWSER_NAME => $browser_type);
$driver = FacebookWebDriverRemoteRemoteWebDriver::create($host, $capabilities);
$driver->get($setconnection);
$driver->get($setavail);
$cookie = $driver->manage()->getCookies();
$driver->close();
$cookie = reset($cookie);
$cookievalue = $cookie['value'];
基本上,我正在尝试从此请求中获取cookievalue,任何人,请有一些解决方案!
这通常意味着Selenium服务器会话有问题。您的服务器等待 Firefox 打开,但它无法打开。您应该使用无头浏览器(专门为自动化而设计的浏览器(
在本地主机(您的 PC(中,有一个显示环境,您的计算机屏幕,Firefox 将像往常一样启动和关闭。
但是在服务器中您可能没有配置显示环境,最好的解决方案是在facebook php Web驱动程序中指定无头Firefox子句 - https://github.com/facebook/php-webdriver/issues/506
$capabilities = FacebookWebDriverRemoteDesiredCapabilities::firefox();
$capabilities->setCapability(
'moz:firefoxOptions',
['args' => ['-headless']]
);
错误告诉您脚本无法访问此 url http://localhost:4444/wd/hub
,即使您的脚本放在同一台机器中,但它无法访问自身:localhost
此类问题通常是由linux机器中的代理/iptables/防火墙/主机名设置引起的,请检查这些设置。
可能的重复:在 CentOS7 上设置 Selenium
对于Windows机器,没有太多地方可以通过操作系统本身控制网络流量,到目前为止,我知道为代理设置环境变量可以做到这一点,并且在浏览器中设置代理。
但是对于linux机器,有很多地方可以设置来控制网络流量,就像我上面说的。对于不同的 Linux 操作系统,这些设置发生在不同的文件/位置,或者具有不同的 cmd 来执行此操作。
此外,现在的VM/docker,对于这两个东西,newwork设置更加复杂。