-1

我正在尝试运行facebook/php-webdriver包,但我被困在这个阶段。

它在我的本地主机中运行良好,但在我的 Ubuntu 服务器中,等待一段时间后我收到此错误

带有参数的 http POST 到 /session 引发的 curl 错误:{"desiredCapabilities":{"browserName":"firefox"}} 操作在 30001 毫秒后超时,收到 0 个字节

这就是我的代码的样子

 $browser_type = 'chrome';
      $host = 'http://localhost:4444/wd/hub'; // this is the default
        $capabilities = array(\Facebook\WebDriver\Remote\WebDriverCapabilityType::BROWSER_NAME => $browser_type);
                   $driver = \Facebook\WebDriver\Remote\RemoteWebDriver::create($host, $capabilities);
        $driver->get($setconnection);
        $driver->get($setavail);
        $cookie = $driver->manage()->getCookies();
        $driver->close();

        $cookie = reset($cookie);

        $cookievalue = $cookie['value'];

基本上,我试图从这个请求中获取 cookievalue,任何人,请有一些解决方案!

4

2 回答 2

1

这通常意味着 Selenium 服务器会话存在问题。您的服务器等待 Firefox 打开,但它没有这样做。您应该使用无头浏览器(专门为自动化而设计的浏览器)

在本地主机(您的电脑)中,有一个显示环境,您的计算机屏幕,Firefox 将正常启动和关闭。

但是在服务器中您可能没有配置显示环境,最好的解决方案是在 facebook php web 驱动程序中指定一个 headless firefox 子句 - https://github.com/facebook/php-webdriver/issues/506

$capabilities = \Facebook\WebDriver\Remote\DesiredCapabilities::firefox();
$capabilities->setCapability(
    'moz:firefoxOptions',
   ['args' => ['-headless']]
);
于 2018-01-26T15:42:05.963 回答
0

该错误告诉您脚本无法访问此 url http://localhost:4444/wd/hub,即使您的脚本放在同一台机器上,但它无法访问自身:localhost

此类问题通常由 linux 机器中的 proxy/iptables/firewall/hostname 设置引起,请检查这些设置。

可能的重复:在 CentOS7 上设置 Selenium

对于 Windows 机器,没有多少地方可以通过操作系统本身来控制网络流量,到目前为止我知道设置代理的环境变量可以做到这一点,并且在浏览器中设置代理。

但是对于linux机器,有很多地方可以设置控制网络流量,就像我上面说的。对于不同的 Linux 操作系统,这些设置发生在不同的文件/位置,或者有不同的 cmd 来执行此操作。

另外,现在的 VM/docker,对于这两个东西,newwork 设置更加复杂。

于 2018-01-26T01:36:42.707 回答