Не удалось запустить сеанс Selenium: в тесте Junit 3.8.2 и селене 3.4 на Linux

Моя среда:

Linux Ubuntu

Селен-HTML-бегун-3.4.0.jar

Селен-Java-3.4.0

Селен-сервер автономный-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: не удалось запустить сеанс Selenium:

в com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:114) в com.thoughtworks.selenium.SeleneseTestBase.setUp(SeleneseTestBase.java:139) в com.thoughtworks.selenium.SeleneseTestBase.Up (Sesesep)) в com.thoughtworks.selenium.SeleneseTestCase.setUp(SeleneseTestCase.java:113) в TestHobo2.setUp(TestHobo2.java:10) в com.thoughtworks.selenium.SeleneseTestCase.runBare(SeleneseTestComCase.jpg) .thoughtworks.selenium.SeleniumException:

по адресу com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:111) по адресу com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:mand.orj.jpgPortor.HorPHorTorpHorp.Wor.ChipToPHP)) на com.thoughtworks.selenium.HttpCommandProcessor.start(HttpCommandProcessor.java:239) на com.thoughtworks.selenium.DefaultSelenium.start(DefaultSelenium.java:105) ... еще 15

Вот мой тестовый пример:

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 ИНФОРМАЦИЯ geckodriver 0.18.0

1500554646753 webdriver:: httpapi DEBUG Создание маршрутов

1500554646764 geckodriver ОШИБКА Используемый адрес (ошибка ОС 98)

2 ответа

Решение

Вы уверены, что правильно определили, по какому IP-адресу и порту работает селен? Запустите ваш сервер селена и вставьте ссылку http://127.0.0.1:4444/wd/hub/ в ваш браузер. Попробуйте создать новый сеанс вручную (нажмите "Создать сеанс" и выберите браузер, см. Изображение ниже), должно появиться пустое окно нового браузера. Если это работает правильно, то сервер селен в порядке. Тогда может быть проблема с соединением между сервером и вашим бегуном.
экран центра селена с опцией создания сеанса
У вас правильно настроен драйвер селена? Например я использую

new RemoteWebDriver(new URL("http://127.0.0.1:4444/wd/hub/"),DesiredCapabilities.firefox())

EDIT1: Показать пример метода setUp, который создает экземпляр RemoteDriver, создает новый сеанс браузера и заполняет 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

Глядя на кодовую базу и пытаясь отобразить ваш общий тестовый код, кажется, что вы в конечном итоге вызовете браузер 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 на вашем локальном компьютере).

Другие вопросы по тегам