Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
org.openqa.selenium.WebDriverException:等待驱动程序服务器启动selenium和Java时超时_Java_Selenium_Google Chrome_Selenium Webdriver_Selenium Chromedriver - Fatal编程技术网

org.openqa.selenium.WebDriverException:等待驱动程序服务器启动selenium和Java时超时

org.openqa.selenium.WebDriverException:等待驱动程序服务器启动selenium和Java时超时,java,selenium,google-chrome,selenium-webdriver,selenium-chromedriver,Java,Selenium,Google Chrome,Selenium Webdriver,Selenium Chromedriver,我已经尝试了Stackoverflow主题中告诉我的一切。我通过jenkins在远程从机上运行java selenium测试。荒谬的是,首先测试总是运行,浏览器打开,所有其他测试都显示“等待驱动程序服务器启动超时” 到目前为止,我尝试过的所有解决方案: 更新Java 1_8_271 更新Selenium 4 更新ChromeDriver 87 使用rawcap检查本地主机流量 检查etc/hosts中的本地主机dns定义 更新Chrome 87 设置代理 检查端口可用性 检查驱动程序路径 在创

我已经尝试了Stackoverflow主题中告诉我的一切。我通过jenkins在远程从机上运行java selenium测试。荒谬的是,首先测试总是运行,浏览器打开,所有其他测试都显示“等待驱动程序服务器启动超时”

到目前为止,我尝试过的所有解决方案:

  • 更新Java 1_8_271
  • 更新Selenium 4
  • 更新ChromeDriver 87
  • 使用rawcap检查本地主机流量
  • 检查etc/hosts中的本地主机dns定义
  • 更新Chrome 87
  • 设置代理
  • 检查端口可用性
  • 检查驱动程序路径
  • 在创建之前杀死所有chrome和驱动程序任务(唯一有效的解决方案,但不适合并行测试)
  • 检查本地主机url和端口是否可通过chrome->http 200访问
当我试图通过代码驱动程序创建函数catch块中的JavaURLConnection访问url和端口时,它会重置连接,但在chrome中会重置200

一切帮助都将不胜感激

最诚挚的问候此错误消息

Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. 
Build info: version: '4.0.0-alpha-7', revision: 'de8579b6d5' 
System info: host: 'ISTDTSTYNMD04V', ip: '10.52.253.54', os.name: 'Windows Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_271' 
Driver info: driver.version: unknown
…表示ChromeDriver无法启动/生成新的浏览上下文,即Chrome浏览器会话

关于您的用例的更多信息将有助于我们更好地分析错误。但是,首先,您只能使用一个参数
start maximized
,并删除所有其他可以启动的参数。因此,您的有效代码块将是:

public WebDriver startChrome() {

    System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("start-maximized");
    ChromeDriverService chromeDriverService = ChromeDriverService.createDefaultService();
    return new ChromeDriver(chromeDriverService, chromeOptions);
}
额外考虑 确保:

  • JDK已升级到当前级别
  • Selenium已升级到当前版本
  • ChromeDriver已更新到当前级别
  • Chrome更新到当前的Chrome 87.0版本。(根据)
  • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和Web客户端发布版本
  • 重新启动系统
  • 以非root用户身份执行
    @Test
  • 始终在
    tearDown(){}
    方法中调用
    driver.quit()
    ,以优雅地关闭和销毁Web驱动程序和Web客户端实例

工具书类 您可以在以下内容中找到一些相关的详细讨论:


您好,非常感谢您的帮助。在你的帮助下,我已经试过了,也试过了。你所描述的一切,我都试过了,但是运气不好。防火墙关闭了。driver.quit始终在@AfterTest中运行。jdk已更新。chrome和驱动程序已更新。两次重新启动。作为root用户和非root用户执行。但我无法尝试检查web客户端版本。你们能详细说明一下吗?嗨,刚刚在数据中心2019虚拟机上测试了相同的代码,它成功了。我之前试过的另一台机器有datacenter 2016。您认为这两个系统相关吗?@Eymasar在数据中心2019虚拟机和数据中心2016这两个截然不同的系统之间可以看到许多不同的方面。理想情况下,您必须始终将测试床与日常开发调整分开
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. 
Build info: version: '4.0.0-alpha-7', revision: 'de8579b6d5' 
System info: host: 'ISTDTSTYNMD04V', ip: '10.52.253.54', os.name: 'Windows Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_271' 
Driver info: driver.version: unknown
public WebDriver startChrome() {

    System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("start-maximized");
    ChromeDriverService chromeDriverService = ChromeDriverService.createDefaultService();
    return new ChromeDriver(chromeDriverService, chromeOptions);
}