我在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,
"发射器"是基本上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
然而,当我通过启动"启动器"来运行应用程序时脚本,应用程序成功创建驱动程序。我的第一个是#34; app"找不到phantomjs驱动程序,因为路径设置不正确,但我在日志中打印(phantomjs_file).exists();
并且找到了正确的。
我已经使用chmod 777为我的应用程序中的每个文件和应用程序本身设置了权限,只是为了排除权限错误。
浏览器无法初始化是否有原因?
非常欢迎任何帮助。
答案 0 :(得分:1)
我找到了问题的答案。问题是当从" .app"运行时,phantomjs无法获得编写自己的日志文件的权限。
我找到了一种方法(唯一对我有用的方法),禁用phantomjs日志写入:
driver = new PhantomJSDriver(new PhantomJSDriverService.Builder()
.usingPhantomJSExecutable(new File("PATH_TO_EXECUTABLE"))
.withLogFile(null).build(),
desireCaps);