当前位置: 首页 > 知识库问答 >
问题:

在Selenium中使用PhantomJS时出错:NoSuchmetodError org/openqa/selenium/浏览器启动器/代理

羊新翰
2023-03-14

我正在尝试使用PhantomJS运行非常简单的Java自动化测试用例。我正在使用以下版本:

  1. selenium-server-standalone3.8.1.jar
  2. 适用于Windows的PhantomJS 2.1.1版本
  3. PhantomJSdriver.jar1.1. version

我的代码预期功能和驱动程序启动如下:

        DesiredCapabilities caps = new DesiredCapabilities();
        ((DesiredCapabilities) caps).setJavascriptEnabled(true);
        ((DesiredCapabilities) caps).setCapability("takesScreenshot", true);
        ((DesiredCapabilities) caps).setCapability(
                PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                "C:/Program Files/phantomjs-2.1.1-windows/bin/phantomjs.exe"   //java web start / jnpl file...
                // "/Controller/phantomjs.exe"
        );

        //SET enabled javascript for php script on WEB page to transform it to picture:
        caps.setJavascriptEnabled(true);
        String [] phantomJsArgs = {"--web-security=no", "--ignore-ssl-errors=yes"};
        caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, phantomJsArgs);

        //CREATING WEB driver
        WebDriver driver = new PhantomJSDriver(caps);

然而,我得到了这个错误:

线程“main”java中出现异常。lang.NoClassDefFoundError:org/openqa/selenium/browserlaunchers/Proxies at org。openqa。硒。幻影。PhantomJSDriversService。createDefaultService(PhantomJSDriverService.java:178)位于org。openqa。硒。幻影。幽灵司机。(PhantomJSDriver.java:99)在HD_PhantomJSTest1。main(HD_PhantomJSTest1.java:33)由:java引起。lang.ClassNotFoundException:org。openqa。硒。浏览器发射器。java的代理。网1美元。在java上运行(URLClassLoader.java:372)。网1美元。在java上运行(URLClassLoader.java:361)。安全访问控制器。java上的doPrivileged(本机方法)。网URLClassLoader。java上的findClass(URLClassLoader.java:360)。lang.ClassLoader。sun上的loadClass(ClassLoader.java:424)。杂项。Launcher$AppClassLoader。java上的loadClass(Launcher.java:308)。lang.ClassLoader。loadClass(ClassLoader.java:357)。。。还有3个

共有1个答案

耿招
2023-03-14

java。当Java虚拟机无法在运行时找到编译时可用的特定类时,会观察到lang.NoClassDefFoundError

例如,如果我们有一个类的方法调用或访问一个类的任何静态成员,而该类在运行时不可用,那么JVM将抛出java。lang.NoClassDefFoundError

从您的测试台信息来看,我不确定是否包含PhantomJSdriver。jar 1.1。版本。当前的PhantomJS实现本身不需要任何额外的jar。相关的Selenium JARs解决了所需的依赖关系。因此可以删除PhantomJSdriver。jar 1.1。版本

除此之外,我在你的代码中没有看到任何这样的错误。然而,在进行了一点代码格式化之后,我用我的配置执行了您的代码,结果是成功,如下所示:

@Test
public void verifyFacebookTitle()
{
    DesiredCapabilities caps = new DesiredCapabilities();
    ((DesiredCapabilities) caps).setJavascriptEnabled(true);
    ((DesiredCapabilities) caps).setCapability("takesScreenshot", true);
    ((DesiredCapabilities) caps).setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
    caps.setJavascriptEnabled(true);
    String [] phantomJsArgs = {"--web-security=no", "--ignore-ssl-errors=yes"};
    caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, phantomJsArgs);
    WebDriver driver = new PhantomJSDriver(caps);
    driver.get("https://www.facebook.com/");
    System.out.println(driver.getTitle());
    driver.quit();
}

我的控制台上的输出:

INFO: Detected dialect: OSS
Facebook – log in or sign up
[INFO  - 2017-12-06T08:24:22.972Z] ShutdownReqHand - _handle - About to shutdown
PASSED: verifyFacebookTitle

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
 类似资料:
  • 我使用的是Selenium 2.53.0Java、Tor 6.0.4和Firefox43。我用Firefoxprofile()加载profile.default归档文件,并用firefox.exe加载Firefoxbinary()来执行tor。Tor启动,但它没有启动,它显示两个错误:无法连接到Tor控制端口和Tor启动失败。

  • 这是我的程序 打包Projectpack导入org . open QA . selenium . by;导入org . open QA . selenium . web driver;导入org . open QA . selenium . chrome . chrome driver;公共类project class {/* * * * @ param args */public static

  • 问题内容: 我刚接触selenium。我生成了我的第一个Javaselenium测试用例,它已成功编译。但是当我运行该测试时,我得到了以下RuntimeException 请告诉我如何解决此错误。 这是我要运行的Java文件。 我首先通过命令提示符启动了selenium服务器,然后通过另一个命令提示符执行了上述java文件。 第二个问题:我可以右键单击包含selenium的网页上的指定位置。 问题

  • 第一次在这里发帖,所以如果我错过了任何细节,请原谅我。 我使用以下设置: 机器人框架:3.0.1(Python 2.7.10) selenium: 3.4.1 selenium2Library: 1.4.1 我将一台mac计算机配置为网格集线器,另一台配置为节点。 这是我的射频测试: 我现在只是试图在另一台机器上打开浏览器以使其正常工作,但在尝试执行脚本时收到以下错误: KeyError:“des

  • 我的代码: 例外情况 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件不存在:C:\Users\sony\Downloads\chromedriver\U win32。在com.exe。谷歌。常见的基础先决条件。org上的checkState(premissions.java:534)。openqa。硒。遥远的服务司机服务。在org上检查

  • 使用此代码为相同,但它是给无法访问的浏览器异常和不工作。