PhantomjsDriver 无法在 Windows 和 Linux 上运行

2023-12-21

我有一个使用 Selenium Webdriver 从站点获取一些信息的应用程序。它在 FirefoxDriver 和 ChromeDriver 上工作得很好,但是当我尝试切换到 PhantomJSDriver 时,我遇到了一些困难。

  1. 在 Windows 机器上,它正常启动,然后立即开始一遍又一遍地输出以下几行:

一月 05, 2014 7:28:43 PM org.apache.http.impl.client.DefaultRequestDirector tryEx 执行 信息:处理请求时捕获 I/O 异常(org.apache.http.NoHttpResponseException):目标服务器无法响应

这可能会重复数百次,持续约 10 分钟,直到最终加载页面;有时它甚至根本无法加载它。

  1. 在 Linux 计算机上,它尝试启动,然后返回以下内容:

线程“thread1”中出现异常 org.openqa.selenium.remote.UnreachableBrowserException:无法 开始一个新的会话。可能的原因是远程地址无效 服务器或浏览器启动失败。构建信息:版本:“未知”, 修订版:'未知',时间:'未知'系统信息:主机:'穿山甲', ip: '128.238.32.20', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-39-generic',java.version:'1.7.0' 驱动程序信息: 驱动程序版本:PhantomJSDriver 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) 在 org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216) 在 org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:111) 在 org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:115) 在 org.openqa.selenium.phantomjs.PhantomJSDriver。(PhantomJSDriver.java:107) 在 org.openqa.selenium.phantomjs.PhantomJSDriver。(PhantomJSDriver.java:96) 原因:org.openqa.selenium.WebDriverException:等待驱动程序超时 服务器启动。构建信息:版本:'未知',修订版:'未知', 时间:'未知'系统信息:主机:'穿山甲',ip:'128.238.32.20', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-39-generic', java.version: '1.7.0' 驱动程序信息: driver.version: PhantomJSDriver 在 org.openqa.selenium.remote.service.DriverService.start(DriverService.java:165) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:62) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527) ... 7 更多 引起者:org.openqa.selenium.net.UrlChecker$TimeoutException:超时等待 [http://localhost:16050/status] 在 20002 毫秒后可用 在 org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:104) 在 org.openqa.selenium.remote.service.DriverService.start(DriverService.java:163) ... 9 更多 引起者:com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException 在 com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:143) 在 org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:79) ... 10 更多 引起原因:java.util.concurrent.TimeoutException 在 java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:258) 在 java.util.concurrent.FutureTask.get(FutureTask.java:119) 在 com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:130) ... 11 更多

我究竟做错了什么?我读过很多关于 Phantomjs 如何比其他驱动程序快得多的文章,并且真的很想使用它,但如果加载每个页面需要 10 分钟,那显然是不可行的。

我正在运行 Selenium WebDriver 版本 2.38.0 和 Phantomjs 版本 1.9.2。

预先非常感谢您, BSG

EDIT只是为了澄清,我认为这与我的代码没有任何关系; Linux 上的错误被抛出在我尝试启动 PhantomJS 驱动程序的线路上,如下所示。

   DesiredCapabilities caps = new DesiredCapabilities();
    caps.setJavascriptEnabled(true);                       
    caps.setCapability(
        PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
        phantombinary//"/home/p/phantomjs-1.9.2-linux-x86_64/bin/phantomjs"
    );

    // Launch driver (will take care and ownership of the phantomjs process)
     WebDriver driver = new PhantomJSDriver(caps);
    System.out.println("starting driver");

如果它在 Linux 上仍然不适合你,请尝试下面的代码,它在 Mac 上适合我。

capabilities.setCapability("phantomjs.binary.path", "path of phantom binary/phantomjs")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhantomjsDriver 无法在 Windows 和 Linux 上运行 的相关文章

  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • 如何在java中使jpeg无损?

    有没有人可以告诉我如何使用编写 jpeg 文件losslessjava中的压缩 我使用下面的代码读取字节来编辑字节 WritableRaster raster image getRaster DataBufferByte buffer Da
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • Selenium Webdriver - 在屏幕截图中捕获 URL

    据我所知 屏幕截图功能基本上就像绘制 DOM 一样 由于 URL 不是 DOM 的一部分 因此屏幕截图不包含 URL 但是有什么解决方法可以捕获 URL 作为屏幕截图的一部分吗 目前 网络驱动程序无法实现这一点 您可以遵循以下任何一种方法
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • 为什么 BufferedWriter 不写入文件?

    我有这个代码 String strings Hi You He They Tetrabenzene Caaorine Calorine File file new File G words txt FileWriter fWriter Bu
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain

随机推荐

  • 无法在 Swift 中重写 NSDictionary 的初始值设定项

    我正在尝试扩展 Swift 中的 NSDictionary 类以包含在 init 上设置的 NSDate 当我添加自定义 init 时 出现编译器错误 required 初始化程序 init dictionaryLiteral 必须由 NS
  • 如何使用 DjangoRestFramework 序列化为多个模型

    我已经定义了一个用户配置文件模型 但希望有一个 api 端点将所有用户数据保存到两个模型中 我的意思是 我正在使用用户模型 并且我有一个定义如下的用户配置文件模型 class UserProfile models Model user mo
  • 在 Dockerfile 中安装 pandas

    我正在尝试创建一个 Docker 镜像 Dockerfile 如下 Use the official Python 3 6 5 image FROM python 3 6 5 alpine3 7 Set the working direct
  • ICommand 不会使用 CanExecute 更新按钮上的 IsEnabled

    我有一个非常简单的按钮绑定到命令
  • 子属性的选择性验证 - MVC 中的 Fluent Validation

    我将 Fluent Validation 与 Ninject Web Mvc FluentValidation 库结合使用来自动连接所有验证器 并使用依赖项注入来创建验证器 我创建了以下模型 public class Parent publ
  • Oracle空条件检查''条件

    我如何比较VARCHAR2变量 哪个是空值 Oracle 不区分空字符串和 NULL 要检查变量是否为空字符串 请使用IS NULL syntax
  • 使用 Docker-Compose 时,使用 JPDA 进行远程调试不会通过 eclipse 连接到 Tomcat

    我对 Docker 很陌生 所以这可能是我做错的一些简单的事情 有了所有的解决方案 当使用 Docker run 启动 Tomcat 容器时 我已经能够使用 eclipse 进行远程调试 docker run it rm e JPDA AD
  • Grails 项目 - Eclipse 中的常见 Java 项目依赖项

    All 我们有标准的 java 项目 其中包含通用数据模型 通用 util 类等 我似乎不明白如何使我的 Grails 项目 在 Eclipse 中 依赖于工作区中的其他标准 非 Grails java 项目 当我在 Java 构建路径 中
  • 如果您不解决或拒绝承诺会怎样?

    我有一个场景 我要返回一个承诺 Promise 基本上是由 ajax 请求触发的 拒绝承诺时 它会显示一个错误对话框 表明服务器存在错误 我想要做的是 当响应代码为 401 时 我既不想解析承诺 也不想拒绝它 因为它已经显示错误对话框 我只
  • 如何使用javascript创建上传进度条

    我使用 php 将文件上传到服务器 在客户端使用 HTML 和 javascript 我想创建一个确定的进度条 显示文件上传的进度 使用javascript 看待 新鲜的 许多图书馆之一 http github com drogus jqu
  • 按代号完全引用工作表

    当我使用 CodeName 属性引用 Excel 工作表时 如何完全限定它们 包括工作簿引用 我想防止出现打开两个不同工作簿且两张工作表具有相同 CodeName 的情况 我用ThisWorkbook因为我想引用运行代码的工作簿 我想象这样
  • Goroutine 是否与其通道一起被垃圾收集?

    想象一下下面的代码 func waitForOneOfTwoProcesses c make chan bool go func time Sleep 1 time Second c lt true go func time Sleep 2
  • 始终在 ASP.NET MVC 控制器中使用异步

    我最近继承了一个ASP NET MVC项目 在该项目中 开发人员正在使用async 到处 我正在尝试评估这是否是一个好主意 具体来说 我现在正在审查控制器代码 在控制器中 开发人员编写了如下内容 public async Task
  • 如何使用 C# 解码 JSON 字符串?

    我正在寻找示例代码 lib 来使用 C 解码 JSON 字符串 要编码我可以这样做 var data new Dictionary
  • 解析 PHP 中的类、函数和参数

    我想创建一个函数 它接收一个参数 该参数保存 PHP 文件的路径 然后解析给定的文件并返回如下所示的内容 class NameOfTheClass function Method1 arg1 arg2 arg2 private functi
  • sin 和 cos 是如何在硬件上实现的?

    我一直在研究如何计算正弦和余弦 我发现了一些 标准 方法 包括查找表 CORDIC 算法和泰勒级数 我还发现大多数现代处理器都有计算三角函数的汇编指令 我想知道的是这些命令是如何工作的 所以 我的问题是 当前一代处理器使用什么特定算法来计算
  • 有没有办法使用内置的苹果 API 在 mkmapview 中获取方向?

    我知道谷歌地图被认为是最好的地图 但我不想下载一堆额外的库之类的 我更喜欢做一些快速简单的事情来获得从 A 点到 B 点的快速路线并完成它 有没有办法使用内置函数 库来做到这一点 有人能指出我正确的方向吗 EDIT 我并不是想逐个轮流指示或
  • 如何从 Java 字符串中删除空字符 (\0)

    我知道 C 中的这段代码试图删除nul人物 0 来自字符串 string Join mText Split new string 0 StringSplitOptions None 有什么方法可以在 Java 中有效地做到这一点吗 你可以写
  • 对于大 n,java.lang.Math.pow(x, n) 的准确/精确度如何?

    我想计算一下 1 0 p n其中 p 是 0 到 1 之间的双精度值 通常非常接近 0 n 是一个正整数 可能约为数百或数千 可能更大 我还不确定 如果可能的话我想只使用Java的内置java lang Math pow 1 0 p n 为
  • PhantomjsDriver 无法在 Windows 和 Linux 上运行

    我有一个使用 Selenium Webdriver 从站点获取一些信息的应用程序 它在 FirefoxDriver 和 ChromeDriver 上工作得很好 但是当我尝试切换到 PhantomJSDriver 时 我遇到了一些困难 在 W