我尝试运行ChromeDriver与页面进行交互,但驱动程序因未知原因而死亡。我将ChromeDriver与ChromeDriver::start();
一起使用,并且能够在死亡之前与几个页面进行交互。我已经在下面附上了堆栈跟踪。
它总是发生在同一个地方,在点击一个按钮后会触发更新页面内容的AJAX调用。我等待异步请求完成,然后尝试调用findElement(WebDriverBy::cssSelector('foo'))
。然后它就死了。我确定发生了什么事情并且终止了这个过程,但我找不到能够告诉我任何事情的日志。
造成这种情况的原因以及如何调试?
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\WebDriverException: The driver server has died. in /home/foo/projects/bar/vendor/facebook/webdriver/lib/Remote/Service/DriverCommandExecutor.php:63
Stack trace:
#0 /home/foo/projects/bar/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php(535): Facebook\WebDriver\Remote\Service\DriverCommandExecutor->execute(Object(Facebook\WebDriver\Remote\WebDriverCommand))
#1 /home/foo/projects/bar/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php(175): Facebook\WebDriver\Remote\RemoteWebDriver->execute('findElement', Array)
#2 /home/foo/projects/bar/baz.php(80): Facebook\WebDriver\Remote\RemoteWebDriver->findElement(Object(Facebook\WebDriver\WebDriverBy))
#3 {main}
thrown in /home/foo/projects/bar/vendor/facebook/webdriver/lib/Remote/Service/DriverCommandExecutor.php on line 63
答案 0 :(得分:1)
有趣的是,当我杀死ChromeDriver可执行文件的所有正在运行的进程时,它突然开始正常工作。也许有些东西给它带来了糟糕的内部状态?