无法启动 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