phantomjs 中的 ghostdriver 似乎存在一个问题,即当单击按钮后 HTTP 调用失败时,整个事情都会失败。
https://github.com/detro/ghostdriver/issues/202#issuecomment-19808784
该问题已得到修复,并且在主分支中。给出了有关如何引用新文件以及不使用 phantomjs 中包含的 ghostdriver 的说明。
Java 在这里: https ://github.com/detro/ghostdriver/issues/243
并且似乎有一个值
PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY
但这在 C# 中不存在
所以试过
var opts = new PhantomJSOptions();
opts.AddAdditionalCapability("phantomjs.ghostdriver.path.property", "c:\\path\\src\\main.js");
但不行,phantomjs 中的输出仍然显示旧版本
EDIT1:这与可以设置的 phantomJS 的路径不同
PhantomJSDriverService.CreateDefaultService("c:\path\to\phantomjs.exe")
我试图告诉 phantomjs 使用本地版本的 Ghostdriver,而不是 phantomjs 本身包含的 ghostdriver。
EDIT2:所以在这里挖掘Java代码文件 https://github.com/detro/ghostdriver/blob/master/binding/java/src/main/java/org/openqa/selenium/phantomjs/PhantomJSDriverService.java
我找到了设置 Java 静态字符串的代码
public static final String PHANTOMJS_GHOSTDRIVER_PATH_PROPERTY = "phantomjs.ghostdriver.path";
这意味着我在上面设置错误,但是在更正后仍然不起作用
var opts = new PhantomJSOptions();
opts.AddAdditionalCapability("phantomjs.ghostdriver.path", "c:\\path\\src\\main.js");
虽然越来越热......