当前位置: 首页 > 面试题库 >

如何通过Selenium Java初始化PhantomJS浏览器

东门理
2023-03-14
问题内容

我试图在Java中使用phantomjsdriver构建Webspider。我正在使用Selenium版本3.11.0,PhantomJS
2.1.1和phantomjsdriver版本1.2.1。当我执行代码时,出现以下错误消息。

线程“主”中的异常java.lang.NoSuchMethodError:org.openqa.selenium.os.CommandLine.find(Ljava
/ lang / String;)Ljava / lang / String;

package Masterarbeit.Crawler;
import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;

public class Test {

    public String Test(){
        File path=new File("/usr/local/bin/phantomjs");
        System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
        WebDriver driver = new PhantomJSDriver(); 
        return "successful";

    }
}

我的操作系统是Linux Mint 18 Sarah,有人知道原因吗?


问题答案:

直到几天就回来 PhantomJSDriver 发布捆绑一起 硒服务器独立-vvvjar 所以我们能够解决的方法
PhantomJSDriver() ,通过import org.openqa.selenium.phantomjs.PhantomJSDriver;硒服务器独立,xyzjar

但是现在, selenium-server-standalone-vvvjar 不再捆绑 PhantomJSDriver
依赖的jar了。因此,您必须从()获取 phantomjsdriver
的版本,该版本com.codeborne:phantomjsdriver:jar:1.4.4似乎与最新的 Selenium 版本保持最新。

下载 phantomjsdriver-1.4.4.jar 并将其添加到您的 Project中

使用以下代码块并执行@Test

import java.io.File;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;

public class phantomJS_launch {

    public static void main(String[] args) {


          File path=new File("C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
          System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
          WebDriver driver= new PhantomJSDriver();
          driver.get("https://www.google.co.in");
          System.out.println(driver.getTitle());
          driver.quit();

    }

}

重要提示PhantomJSDriver() 仍然可以解决 import org.openqa.selenium.phantomjs.PhantomJSDriver;

控制台输出:

Apr 25, 2018 9:24:16 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: executable: C:\Utility\phantomjs-2.1.1-windows\bin\phantomjs.exe
Apr 25, 2018 9:24:16 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: port: 25078
Apr 25, 2018 9:24:16 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: arguments: [--webdriver=25078, --webdriver-logfile=C:\Users\AtechM_03\LearnAutmation\Java_PhantomJS\phantomjsdriver.log]
Apr 25, 2018 9:24:16 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: environment: {}
[INFO  - 2018-04-25T15:54:19.809Z] GhostDriver - Main - running on port 25078
[INFO  - 2018-04-25T15:54:20.263Z] Session [ea9746f0-48a0-11e8-8b6b-f78193ae50b0] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1","webSecurityEnabled":true}
[INFO  - 2018-04-25T15:54:20.263Z] Session [ea9746f0-48a0-11e8-8b6b-f78193ae50b0] - page.customHeaders:  - {}
[INFO  - 2018-04-25T15:54:20.263Z] Session [ea9746f0-48a0-11e8-8b6b-f78193ae50b0] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"2.1.1","driverName":"ghostdriver","driverVersion":"1.2.0","platform":"windows-8-32bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO  - 2018-04-25T15:54:20.264Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: ea9746f0-48a0-11e8-8b6b-f78193ae50b0
Apr 25, 2018 9:24:20 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Google
[INFO  - 2018-04-25T15:54:22.023Z] ShutdownReqHand - _handle - About to shutdown


 类似资料:
  • 我想创建一个基于JavaFx WebEngine的自定义FunctionPlotter组件。我的情节将在浏览器中显示。在执行plot命令之前,我必须等待浏览器初始化(它加载d3.js)。目前,我这样做的方法是将我的绘图表达式放入一个Runnable中,并将该Runnable传递给FunctionPlotter。(FunctionPlotter将runnable传递给浏览器的loading fini

  • 我对在QT中使用MongoDB C++很新鲜。 然而,当我想在Qt上应用相同的代码时,出现了很多问题。 总体设置: Win10 带有Qt V5.10.1 MSVC2017的Qt Creator V4.6.0 64位Microsoft Visual C++编译器15.0调试器CDB x64 MongoDB v3.6.3 升压1.66.0作为lib64-msvc-14.1 Mongo c驱动程序v1.

  • 我有一个非常基本的问题。我需要如何为ArrayList键入parrameters才能在BlueJ中使用代码?我有一个方法如下。

  • 问题内容: 我正在开发Web应用程序,我需要与其他浏览器分开标识Microsoft Edge的浏览器,以应用独特的样式。有没有一种使用CSS识别Edge的方法?就像, 问题答案: / * Microsoft Edge浏览器12-18(Chromium之前的所有版本)* / 这应该工作:

  • 我正在用Extbase构建一个TYPO3扩展,并希望存储通过httpget获取的数据。现在我正在努力使用浏览器访问动作控制器。 插件被实现到第102页 扩展键是xyzlist 插件名称是xyzlistdb 控制器名称是playlicontroller 操作是getAction 域名是sub.domain。de 在播放控制器中。php仅在getAction下 错误日志(“getAction”,0)

  • 问题内容: 我有一个包含未初始化通道的结构。 当我向它写入内容时,该例程将按预期方式阻塞,但是永远不会通知读者管道中有东西。 我很惊讶没有错误,我想知道Go在做什么。 在下面的示例中,消息和消息均未打印。(取消注释初始化,它将像超级按钮一样起作用) 这是操场https://play.golang.org/p/76zrCuoeoh (我知道我应该初始化通道,这不是问题的目的,我想知道使用未初始化的通