首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firefox Webdriver Selenium "No protocol specified“,Debian(Wheezy),Service,Script

Firefox Webdriver Selenium "No protocol specified“,Debian(Wheezy),Service,Script
EN

Stack Overflow用户
提问于 2014-10-09 18:54:05
回答 1查看 1.1K关注 0票数 1

在我的cubietruck上运行cubian时,我的可执行jar出现了问题。我想在立方推车启动的时候启动这个罐子。Jar本身使用selenium-server-standalone-2.43.1.jar来控制firefox。

为了启动我的jar,我创建了一个简单的bash脚本('/usr/local/bin/startplt.sh')

代码语言:javascript
复制
#!/bin/bash

PATH=/bin:/sbin:
JAVA=/usr/bin/java
JARFILE=/home/cubie/plt/plt.jar
USER=cubie

/bin/su -$USER -c "$JAVA -jar $JARFILE"

在控制台中执行此脚本可以成功打开firefox。为了让jar在启动时启动,我创建了一个服务('/etc/init.d/startjar')

代码语言:javascript
复制
#! /bin/sh
### BEGIN INIT INFO
# Provides:          startjar
# Required-Start:    $all
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Default-Start:    2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts plt.jar
# Description:       starts a the main jarfile
### END INIT INFO

NAME="startjar"
DESC="Starts /home/cubie/plt/plt.jar"

case "$1" in
  start)
        export DISPLAY=:0.0
        sudo /usr/local/bin/startplt.sh
    ;;
  stop)
    pkill -f /home/cubie/plt/plt.jar
    pkill -f iceweasel
    ;;
  *)
    exit 1
    ;;
esac
exit 0

并通过以下方式将其插入系统:

代码语言:javascript
复制
insserv /etc/init.d/startjar

该服务在启动时执行,但不启动firefox。取而代之的是将其写入日志文件中:

代码语言:javascript
复制
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port             056 after 45000 ms. Firefox console output:
No protocol specified
Error: cannot open display: :0.0
No protocol specified
Error: cannot open display: :0.0

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:193)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
at de.etc.plt.display.DisplayManager.<init>(DisplayManager.java:20)
at de.etc.plt.display.DisplayManager.getInstance(DisplayManager.java:26)
at de.etc.plt.service.impl.DisplayService.<init>(DisplayService.java:25)
at de.etc.plt.MainThread.run(MainThread.java:33)
at java.lang.Thread.run(Thread.java:745)
2014-10-09 12:25:27 [ERROR]:Firefox konnte nicht gestartet werden
2014-10-09 12:25:27 [org.openqa.selenium.WebDriverException]:Failed to connect to binary     FirefoxBinary(/usr/bin/firefox) on port 7056; process output follows: 
No protocol specified
Error: cannot open display: :0.0
No protocol specified
Error: cannot open display: :0.0

Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:33'
System info: host: 'Cubian', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'arm', os.version: '3.4.79-sun7i', java.version: '1.7.0_65'
Driver info: driver.version: FirefoxDriver
org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7056; process output follows: 
No protocol specified
Error: cannot open display: :0.0
No protocol specified
Error: cannot open display: :0.0

Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:33'
System info: host: 'Cubian', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'arm', os.version: '3.4.79-sun7i', java.version: '1.7.0_65'
Driver info: driver.version: FirefoxDriver
at     org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:130)
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:193)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
at de.etc.plt.display.DisplayManager.<init>(DisplayManager.java:20)
at de.etc.plt.display.DisplayManager.getInstance(DisplayManager.java:26)
at de.etc.plt.service.impl.DisplayService.<init>(DisplayService.java:25)
at de.etc.plt.MainThread.run(MainThread.java:33)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7056 after 45000 ms. Firefox console output:
No protocol specified
Error: cannot open display: :0.0
No protocol specified
Error: cannot open display: :0.0

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
... 11 more

我真的不明白为什么在没有额外添加行export DISPLAY=:0.0的情况下,简单的脚本startplt.sh仍然可以工作,以消除错误"no display specified“。

也许服务甚至在xserver启动之前就已经启动了?我不知道怎么才能找到答案。如果能得到一些帮助,我们将不胜感激。

如果你有另一个在cubian上启动后执行脚本的有效解决方案,我也会很高兴。

编辑:我通过允许多个用户在xhost +service startjar start上使用xserver来让火狐工作。但是仍然存在这样的问题:在系统启动时无法正常工作。

EN

回答 1

Stack Overflow用户

发布于 2014-10-10 16:15:27

我通过将startplt.sh更改为

代码语言:javascript
复制
#!/bin/bash

PATH=/bin:/sbin:
JAVA=/usr/bin/java
JARFILE=/home/cubie/plt/plt.jar
USER=cubie
DISPLAY=:0
export DISPLAY
xhost +

/bin/su -$USER -c "$JAVA -jar $JARFILE"

并从startjar服务中删除了这一行。需要使用xhost +才能允许m< jar使用我的xserver来设置火狐

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26276619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档