7

Я запускаю тестовые файлы селена на сервере ubuntu, который в основном запускает тестовые окна как в Firefox, так и в Chrome. Firefox запускает и тестовые случаи успешного запуска, но хром бросает исключение:Исключение для Webdriver: «chrome not reachable»

***** Ниже приводится фрагмент из StackTrace: *****

Начиная ChromeDriver (v2.8.240825) на порт 21549

поддержка PAC отключена, потому что нет реализации системы

Test IntegrationTest.AdminUserelementscheck не удалось:

org.openqa.selenium.WebDriverException: хром не достижим (информация о драйвере: chromedriver = 2.8.240825, платформа = Linux 2.6.32-431.el6.x86_64 x86_64) (ПРЕДУПРЕЖДЕНИЕ: сервер не предоставил никакой информации о стеке) [ошибка] Длительность или таймаут команды: 20,83 секунды


Привет Ниже небольшой фрагмент моего кода:

public class IntegrationTest { 

private static final String configFile="test.properties"; 

private final String FIREFOX="firefox"; 

private final String CHROME="chrome"; 

private final String PHANTOMJS="phantomjs"; 

private final String BROWSERNAME="browser"; 

private static Properties props = new Properties(); 

public WebDriver webDriver; 

private static Configuration additionalConfigurations; 


@BeforeClass 

public static void setUp() throws IOException, SQLException{ 

props.load(IntegrationTest.class.getResourceAsStream("/" + configFile)); 
     } 

@test 

public void AdminUserelementscheck() throws SQLException, IOException { 

String[] browsers = props.getProperty(BROWSERNAME).split(","); 

System.out.println("Number of browsers specified in conf:"+props.getProperty(BROWSERNAME)); 

for(String browser:browsers){ 

System.out.println("Browser currently processing:"+browser); 

if(browser.equalsIgnoreCase(FIREFOX)) 

webDriver = new FirefoxDriver(); 

else if(browser.equalsIgnoreCase(CHROME)) 

webDriver = new ChromeDriver(); 

else 

webDriver = new PhantomJSDriver(); 

running(testServer(3333,fakeApplication()),webDriver, new Callback<TestBrowser>() { 


********* LOGIN AND ASSERTION STATMENTS******************* 

browser.quit() 

} 

}); 

} 
+0

Это может быть проблема переадресации портов между вашим контейнером докеров и удаленным устройством/хостом. –

ответ

19

Это будет потому, что Chrome также использует контейнеров Unix для того, чтобы работать. Если вы хотите, чтобы запустить в докер, передать команду докер запустить

--privileged

В противном случае вы можете начать с Chrome

--no-песочнице

+1

Спасибо большое, он работал. –

+3

@Conor @ Immanuel Fredrick: Где я могу поставить эту команду? Пожалуйста, помогите разобраться с приведенным выше примером. –

+0

Хорошо, я попробовал передать это хром args, но он говорит, что среда не доступна в этом случае. –

1

Ваш водитель хром, кажется, старый. Попробуйте загрузить последнюю дату с даты снизу и отчитаться, если появятся новые ошибки.

http://chromedriver.storage.googleapis.com/index.html?path=2.14/

+0

Я пробовал большинство версий хромирования от 2.7 до 2.14. Он выдает ту же ошибку –

+1

Следует отметить, что вся настройка запускается внутри контейнера докера –

0

Также убедитесь, что переменная окружения PATH имеет путь к хромированному краю.

+0

У меня есть исполняемый файл chromedriver, помещенный в путь системной среды. И он может выбрать хромированный реверс, но не запускать его. –

+1

Вы настроили параметр XServer Display, такой как DISPLAY =: 0 перед вызовом скрипта? –

3

У меня возникла аналогичная проблема. Я запускаю тесты Selenium на местном уровне, и неожиданно появилась ошибка «исключение хром, недоступная для веб-браузера».

Проблема в том, что у меня уже было слишком много вкладок в моем обычном браузере Chrome. После разочарования я закрыл несколько вкладок, и вдруг это сработало. Я не уверен, что есть определенный предел вкладок, но если кто-то сталкивается с той же проблемой, попробуйте.

+0

Я постараюсь быть более простым в следующий раз :) – sKyTzi

Смежные вопросы