Web 驱动程序异常:找不到 (POST) /wd/hub/session 的处理程序



谷歌浏览器 79.0.3945.130
ChromeDriver 79.0.3945.36
Selenium-server-4.0.0-alpha-4.jar
来自 php-webdriver GitHub 的最新代码,截至 2020 年 1 月 22

日我正在使用 Xfvb 在本地主机上以独立模式启动 Selenium 服务器,如下所示:

$ Xvfb :99 -screen 5 1920x1080x8 &
$ export DISPLAY=:99
$ java -Dwebdriver.chrome.driver="./chromedriver" -jar selenium-server-4.0.0-alpha-4.jar standalone

然后我有一个测试助手类,它在 PHP 代码中启动:

1 final public static function createWebDriver() {
2   $options = new ChromeOptions();
3   $options->addArguments(array('--window-size=1920,1080'));
4   $caps= DesiredCapabilities::chrome();
5   $caps->setCapability(ChromeOptions::CAPABILITY, $options);
6   $driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $caps);
7   $driver->manage()->window()->maximize();
8   return $driver;
9}

当我运行测试并调用 RemoteWebDriver::create(( 函数时,它会抛出异常:

Facebook\WebDriver\Exception\UnknownCommandException:无法找到 处理程序 for (POST(/wd/hub/session/home/me/UnitTest/vendor/facebook/webdriver/lib/Exception/WebDriverException.php:137/home/me/UnitTest/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:380/home/me/UnitTest/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php:136/var/www/html/project/core/functions/SeleniumTestHelper.php:6

问题的行是:
$driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $caps(;

我与netstat确认我正在侦听端口4444的所有地址。我在计算机上找不到名为"hub"的目录。我不确定为什么这不起作用,而且似乎没有比这个例外更多的信息可供我删除。

Andrewnichols在GitHub上帮助了我!这是他的回应。非常感谢他。我将在这里为遇到此问题的任何人分享答案。

嗨@JoeyofBladez,

Selenium 4 更改了 URL。它不再落后于/wd/hub。错误是正确的。它不知道/wd/hub/session 是什么意思。新 URL http://localhost:4444,这将使新会话 URL http://localhost:4444/session。

您可以在 http://localhost:4444/status 查看状态

我们扩展了php-webdriver README,以明确您应该将Selenium服务器的哪个URL用于哪个版本。

ChromeDriver

如果您在没有选项的命令行上启动 Chromedriver,请执行以下操作:

$ chromedriver

然后使用:

$serverUrl = 'http://localhost:9515';
$driver = RemoteWebDriver::create($serverUrl, DesiredCapabilities::chrome());

但是,您可以自己指定端口:

$ chromedriver --port=4444

然后使用:

$serverUrl = 'http://localhost:4444';

壁虎司机

$ geckodriver

在脚本中使用:

$serverUrl = 'http://localhost:4444';
$driver = RemoteWebDriver::create($serverUrl, DesiredCapabilities::firefox());

硒独立服务器

// selenium-server-standalone-#.jar (version 2.x or 3.x)
$serverUrl = 'http://localhost:4444/wd/hub';
// selenium-server-standalone-#.jar (version 4.x)
$serverUrl = 'http://localhost:4444';
$driver = RemoteWebDriver::create($serverUrl, DesiredCapabilities::chrome()); // or other browser

相关内容

  • 没有找到相关文章