1

我实现使用下述工具无头的Chrome浏览器测试:

  • Ubuntu14.04LTS。
  • Chrome浏览器(58版最新)
  • chromedriver二进制(2.29最新)
  • 的Xvfb(无头镀铬)
  • JDK 1.8.0_28
  • TestNG的。
  • 需要的jar文件分别是selenium-java-2.53.0,selenium-chromedriver-2.26.0和testng-6.9.9 jar文件。

我完成安装工作在我的本地完全正常,但是当我在另一台服务器上进行全新安装,它ChromeDriverService的初始化建立可执行的过程中确实低于不例外作品和表演。我得到下面提到的错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.openqa.selenium.chrome.ChromeDriverService$Builder.usingDriverExecutable(Ljava/io/File;)Lorg/openqa/selenium/remote/service/DriverService$Builder; 
    at utilities.Testing.main(Testing.java:46) 

这是造成错误的代码行是:

chromeDriverService = new ChromeDriverService.Builder() 
        .usingDriverExecutable(new File("/home/ubuntu/chromedriver")).usingAnyFreePort() 
        .withEnvironment(ImmutableMap.of("DISPLAY", ":1")).build(); 

我想降级的服务器上chromedriver和Chrome浏览器版本,但它仍然没有工作。我正在编译所有jar文件的类路径,它不显示任何编译错误。但是它只会在chromeDriverService对象初始化期间显示错误。我系统上的jdk版本是1.8.0_111,在服务器上是1.8.0_28,我猜这不是jdk版本的主要区别,因为这些版本的代码不起作用。

请帮我找出我的问题的解决方案,因为我无法找到为什么我的整个工作测试脚本代码转移到另一个系统时不能在一个新系统的相同的安装和依赖关系。同时建议我使用chromedriver和chromebrowser特定版本,并且不会为我造成问题。请帮忙 !!!

回答

0

看来应用程序无法在服务器计算机中找到罐子。你是否将它们添加到classpath(java -cp)并且所有路径都正确?

+0

嗨@drolmal ,我一直在1个特定文件夹中的所有jar文件,我执行 'javac的-classpath:dependencies_jars/* MyFile.java 的java -classpath:dependencies_jars/* MyFile' 所有的文件夹路径是正确的,但无法识别我的设置中存在问题的部分,因此无法按预期执行。 – kaustubh

+0

Tru按名称,逐个和完整路径指定罐子。这通常会诀窍。 – didiz

+0

也尝试过这种方式。不管怎样,它对我来说都不起作用。无法找出问题所在。我只是通过反向工程为“selenium-java”和“selenium-chromedriver”jar文件观察了一件事,即抛出异常的方法(ChromeDriverService $ Builder.usingDriverExecutable),此方法在'selenium -java'jar文件,而它仅存在于'selenium-chromedriver'jar文件中。从classpath中删除'selenium-java'jar文件显示'WebDriver'类的编译时错误。任何人都可以请帮助我吗? – kaustubh

0

你为什么不尝试使用Maven将所有的硒,TestNG的,因为的webdriver在pom.xml文件的依赖性,并让该工具下载所需要的罐子为你而不是这样做,手动

+0

@mohammedfaisal,将与Maven一起尝试并更新。 – kaustubh

相关问题