неизвестная ошибка: файл DevToolsActivePort не существует, ошибка при выполнении тестовых примеров Selenium UI в Ubuntu - PullRequest
0 голосов
/ 11 июня 2018

У меня есть сервер Ubuntu с пользовательским интерфейсом.Вы можете выполнить тестовые наборы, запустив команду mvn test.Но проблема в том, что когда я делаю ssh машины через терминал с другой машины, я получаю следующую ошибку -

unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7),platform=Linux 4.4.0-121-generic x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.04 seconds
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
System info: host: 'ubuntu-test', ip: 'X.X.X.X', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-121-generic', java.version: '1.8.0_171'
Driver info: driver.version: ChromeDriver

, но эта же команда успешно запускает chrome, если я беру удаленный компьютер через remmina, а затемвыполнить ту же команду терминала этой машины.

Ответы [ 5 ]

0 голосов
/ 14 июня 2019

Если вы запускаете из ssh без X-forward, ваш браузер chrome зависнет.Чтобы предотвратить это, вы можете использовать параметры, опубликованные DebanjanB, самое важное из которых - безголовый.Если вы работаете от имени пользователя root (не рекомендуется), вам также потребуется --no-sandbox.

У меня также была эта ошибка, когда я использовал более старую версию selenium-java (3.5.3) с более новым chromedriver (75)..Икс).Мне удалось использовать версию 2.46 chromedriver с 3.5.3 или 75.x с 3.141.59 из selenium java.

Запуск локальной Xvfb тоже должен работать, но я предлагаю использоватьбез головы, это может быть намного быстрее.

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

0 голосов
/ 15 января 2019

Попробуйте запустить selenium-server без sudo -privileges:

java -jar path/to/selenium-server-standalone.jar

0 голосов
/ 28 сентября 2018

Я использую эту конфигурацию, используя python

import os
from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("no-sandbox")
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--headless")
driver = os.path.join("path/of/driver","chromedriver")

browser = webdriver.Chrome(executable_path=driver,chrome_options=chrome_options)
browser.get("https://www.example.com")
print(browser.title)
0 голосов
/ 19 декабря 2018

У меня была похожая проблема, когда я пытался тестировать пользовательский интерфейс селена в режиме без головы.Это произошло, поскольку у меня не было сервера дисплея.Запуск Xvfb работал для меня.

sudo yum -y install Xvfb libXfont Xorg

sudo yum -y groupinstall "X Window System" "Desktop" "Fonts" "General Purpose Desktop"

Xvfb :99 -screen 0 1024x768x24 &

export DISPLAY=:1

0 голосов
/ 11 июня 2018

Это сообщение об ошибке ...

unknown error: DevToolsActivePort file doesn't exist

... подразумевает, что ChromeDriver не смог инициировать / создать новый WebBrowser т.е. Браузер Chrome сеанс.

Ваши испытания кода и информация о версиях всех двоичных файлов дала бы нам некоторый намек на то, что происходит не так.

Однако в соответствии с Добавьте --disable-dev-shm-using к флагам запуска по умолчанию кажется, добавление аргумента --disable-dev-shm-usage временно решит проблему.

Если вы хотите начать / охватить новый Браузер Chrome сеанс, вы можете использовать следующее решение Java :

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--no-sandbox"); // Bypass OS security model
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");

disable-dev-shm-using

Согласно base_switches.cc disable-dev-shm-usage, похоже, действует только на Linix OS :

#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
// The /dev/shm partition is too small in certain VM environments, causing
// Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
// work-around this issue (a temporary directory will always be used to create
// anonymous shared memory files).
const char kDisableDevShmUsage[] = "disable-dev-shm-usage";
#endif

В обсуждении Добавьте опцию для использования / tmp вместо / dev / shm Дэвид упоминает:

Я думаю, это будет зависеть от того, как / dev /ШМ и / TMP установлены.Если они оба смонтированы как tmpfs, я предполагаю, что не будет никакой разницы.если по какой-то причине / tmp не отображается как tmpfs (и я думаю, что по умолчанию systemd отображает как tmpfs), управление общей памятью chrome всегда отображает файлы в память при создании анонимных общих файлов, поэтому даже в этом случае не должно бытьбольшая разница.Я думаю, вы могли бы принудительно запустить телеметрические тесты с включенным флагом и посмотреть, как он работает.

Что касается того, почему не использовать по умолчанию, команда общей памяти отодвинула его назад, я думаю, что это имеет смыслпо умолчанию используется / dev / shm для совместно используемой памяти.

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

Подробное обсуждение также можно найти в org.openqa.selenium.WebDriverException: неизвестная ошибка: файл DevToolsActivePort не существует при попытке запуска браузера Chrome

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...