【问题标题】:Unable to start Phantomjs driver from java .app on OSX无法从 OSX 上的 java .app 启动 Phantomjs 驱动程序
【发布时间】:2016-07-21 17:55:15
【问题描述】:

我在 Java 上创建了一个启动 phantomjs 驱动程序的应用程序。

我的程序从 eclipse 启动时成功创建了 phantomjs 驱动程序,其中包含以下几行:

DesiredCapabilities desireCaps = new DesiredCapabilities();
desireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, directory + "/phantomjs");
desireCaps.setCapability("phantomjs.cli.args", Collections.singletonList("--ignore-ssl-errors=true"));
desireCaps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0");
driver = new PhantomJSDriver(desireCaps);

我这样创建了一个 .app:

其中“MainJar.jar”是eclipse生成的jar, “launcher”是基本上做java -jar MainJar.app的批处理,“phantomjs”是selenium phantomjs官方可执行文件。

当我从“.app”启动应用程序时,driver = new PhantomJSDriver(desireCaps); 出现以下错误:

无法开始新会话。可能的原因是远程服务器地址无效或浏览器启动失败。 构建信息:版本:“未知”,修订:“未知”,时间:“未知” 系统信息:主机:'Air-de-Me',ip:'XXX.XXX.X.XX',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10.10。 5',java.version:'1.8.0_73' 驱动信息:driver.version: PhantomJSDriver

但是,当我通过启动“启动器”脚本运行应用程序时,应用程序成功创建了驱动程序。我的第一个想法是“应用程序”找不到 phantomjs 驱动程序,因为路径设置不正确,但我在日志中打印了(phantomjs_file).exists();,它正确地找到了它。

我已使用 chmod 777 对我的应用内的每个文件和应用本身设置了权限,只是为了排除权限错误。

浏览器无法启动有什么原因吗?

非常欢迎任何帮助。

【问题讨论】:

    标签: java macos selenium jar phantomjs


    【解决方案1】:

    我找到了问题的答案。问题是 phantomjs 从“.app”运行时无法获得写入自己的日志文件的权限。

    我找到了一种方法(对我有用的唯一方法),禁用 phantomjs 日志写入:

    driver = new PhantomJSDriver(new PhantomJSDriverService.Builder()
            .usingPhantomJSExecutable(new File("PATH_TO_EXECUTABLE"))
            .withLogFile(null).build(), 
            desireCaps);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 2015-09-17
      相关资源
      最近更新 更多