无法启动 Selenium 会话:在 linux 上的 Junit 3.8.2 测试和 selenium 3.4 中
Could not start Selenium session: in Junit 3.8.2 test and selenium 3.4 on linux
我的环境:
linux ubuntu
硒-html-运行ner-3.4.0.jar
硒-java-3.4.0
selenium-server-standalone-3.4.0.jar
构建我做的:
javac -cp "/usr/share/java/junit.jar:/home/me/ushare/hobo/selenium/selenium-html-runner-3.4.0.jar:." TestHobo2.java
到运行硒服务器:
java -jar selenium-server-standalone-3.4.0.jar
到运行我做的测试:
java junit.textui.TestRunner TestHobo2
我得到:
java.lang.RuntimeException: Could not start Selenium session:
at
com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:114)
at
com.thoughtworks.selenium.SeleneseTestBase.setUp(SeleneseTestBase.java:139)
at
com.thoughtworks.selenium.SeleneseTestBase.setUp(SeleneseTestBase.java:108)
at
com.thoughtworks.selenium.SeleneseTestCase.setUp(SeleneseTestCase.java:113)
at TestHobo2.setUp(TestHobo2.java:10) at
com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestCase.java:289)
Caused by: com.thoughtworks.selenium.SeleniumException:
at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:111)
at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:105)
at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:277)
at com.thoughtworks.selenium.HttpCommandProcessor.start(HttpCommandProcessor.java:239)
at com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:105)
... 15 more
这是我的测试用例:
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class TestHobo2 extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.example.com/", "*chrome");
}
public void testGetLink() throws Exception {
selenium.type("name=p_loc", "groove");
selenium.click("css=input[type=\"Submit\"]");
selenium.waitForPageToLoad("30000");
}
}
编辑 2017/07/20 更多信息:
我使用的是 Firefox 版本 52.0.2(64 位)。
我应该在构建后得到以下信息吗?
Note: TestHobod2.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
geckodriver -v
1500554646753 geckodriver INFO geckodriver 0.18.0
1500554646753 webdriver::httpapi DEBUG 创建路由
1500554646764 geckodriver 错误地址正在使用(os 错误 98)
查看代码库并尝试映射您的共享测试代码,似乎表明您最终将调用 Firefox 浏览器。 Selenium 中的底层实现确保这将导致您的测试代码求助于 firefox。
能否确保您已经 geckodriver 下载并在您的 PATH 变量中可用?
如果这不能解决问题(这主要是由于您桌面上的 firefox 版本与 geckodriver 版本不匹配),您可以尝试切换到使用 Google Chrome
。
您可以通过
切换到 google chrome
正在更改:setUp("http://www.example.com/", "*chrome");
至 : setUp("http://www.example.com/", "*googlechrome");
然后查看是否会关闭浏览器(对于 google chrome,您需要确保已 chromedriver 下载并在本地计算机上可用)
您确定您已经正确定义了哪个 IP 地址和端口是 selenium 运行? 运行 你的 selenium 服务器并将 http://127.0.0.1:4444/wd/hub/ link 放入你的浏览器。尝试手动创建新会话(点击创建会话和 select 浏览器,见下图),新的浏览器空白 window 应该出现。如果这工作正常,那么 selenium 服务器就可以了。那么服务器和您的跑步者之间的连接可能会出现问题。
screen of selenium hub with create session option
您是否正确设置了 selenium 驱动程序?例如我正在使用
new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub/"),DesiredCapabilities.firefox())
EDIT1:显示创建 RemoteDriver 实例的 setUp 方法示例,创建新的浏览器会话并填充 url。
WebDriver driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), DesiredCapabilities.firefox());
driver.manage().window().maximize()//maximaze window as possible
driver.get("www.google.com"); //navigate to google, i.e. fill url into opened session
我的环境:
linux ubuntu
硒-html-运行ner-3.4.0.jar
硒-java-3.4.0
selenium-server-standalone-3.4.0.jar
构建我做的:
javac -cp "/usr/share/java/junit.jar:/home/me/ushare/hobo/selenium/selenium-html-runner-3.4.0.jar:." TestHobo2.java
到运行硒服务器:
java -jar selenium-server-standalone-3.4.0.jar
到运行我做的测试:
java junit.textui.TestRunner TestHobo2
我得到:
java.lang.RuntimeException: Could not start Selenium session:
at com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:114) at com.thoughtworks.selenium.SeleneseTestBase.setUp(SeleneseTestBase.java:139) at com.thoughtworks.selenium.SeleneseTestBase.setUp(SeleneseTestBase.java:108) at com.thoughtworks.selenium.SeleneseTestCase.setUp(SeleneseTestCase.java:113) at TestHobo2.setUp(TestHobo2.java:10) at com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestCase.java:289) Caused by: com.thoughtworks.selenium.SeleniumException:
at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:111) at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:105) at com.thoughtworks.selenium.HttpCommandProcessor.getString(HttpCommandProcessor.java:277) at com.thoughtworks.selenium.HttpCommandProcessor.start(HttpCommandProcessor.java:239) at com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:105) ... 15 more
这是我的测试用例:
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class TestHobo2 extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.example.com/", "*chrome");
}
public void testGetLink() throws Exception {
selenium.type("name=p_loc", "groove");
selenium.click("css=input[type=\"Submit\"]");
selenium.waitForPageToLoad("30000");
}
}
编辑 2017/07/20 更多信息:
我使用的是 Firefox 版本 52.0.2(64 位)。
我应该在构建后得到以下信息吗?
Note: TestHobod2.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
geckodriver -v
1500554646753 geckodriver INFO geckodriver 0.18.0
1500554646753 webdriver::httpapi DEBUG 创建路由
1500554646764 geckodriver 错误地址正在使用(os 错误 98)
查看代码库并尝试映射您的共享测试代码,似乎表明您最终将调用 Firefox 浏览器。 Selenium 中的底层实现确保这将导致您的测试代码求助于 firefox。
能否确保您已经 geckodriver 下载并在您的 PATH 变量中可用?
如果这不能解决问题(这主要是由于您桌面上的 firefox 版本与 geckodriver 版本不匹配),您可以尝试切换到使用 Google Chrome
。
您可以通过
切换到 google chrome正在更改:setUp("http://www.example.com/", "*chrome");
至 : setUp("http://www.example.com/", "*googlechrome");
然后查看是否会关闭浏览器(对于 google chrome,您需要确保已 chromedriver 下载并在本地计算机上可用)
您确定您已经正确定义了哪个 IP 地址和端口是 selenium 运行? 运行 你的 selenium 服务器并将 http://127.0.0.1:4444/wd/hub/ link 放入你的浏览器。尝试手动创建新会话(点击创建会话和 select 浏览器,见下图),新的浏览器空白 window 应该出现。如果这工作正常,那么 selenium 服务器就可以了。那么服务器和您的跑步者之间的连接可能会出现问题。
screen of selenium hub with create session option
您是否正确设置了 selenium 驱动程序?例如我正在使用
new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub/"),DesiredCapabilities.firefox())
EDIT1:显示创建 RemoteDriver 实例的 setUp 方法示例,创建新的浏览器会话并填充 url。
WebDriver driver = new RemoteWebDriver(new URL("http://192.168.4.52:4444/wd/hub"), DesiredCapabilities.firefox());
driver.manage().window().maximize()//maximaze window as possible
driver.get("www.google.com"); //navigate to google, i.e. fill url into opened session