2017-02-07 13 views
1

Я очень новичок в Selenium и WebDriver.открытие браузера Firefox с помощью WebDriver

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

Следующая строка кода запускает браузер Firefox с новым идентификатором сеанса каждый раз при открытии веб-браузера Firefox.

WebDriver driver = new FirefoxDriver();

Мои вопросы:

  • Есть ли какой-либо причине (безопасность/проблема производительности), что WebDriver всегда открывает свежий Firefox (как недавно установленной Firefox с Нет дополнений/Нет настройки) каждый раз, когда выполняется над кодом?
  • означает ли это, что каждый раз, когда создается новый и временный профиль Firefox?
  • Является ли сеанс сеанса Firefox таким же, как профиль Firefox, или это означает, что сеанс просмотра активен до закрытия Firefox?

Пожалуйста, объясните меня. Я очень озадачен.

+1

Я думаю, что детали в зависимости от используемой вами версии Selenium/WebDriver. По моему опыту (с Seleinum 1 и 2) это выглядит так: каждый раз, когда запускается сеанс, создается новая копия вашего профиля Firefox (профиль по умолчанию, если не указан) ваш системный каталог temp. Вероятно, причина в том, что если Selenium выйдет из строя - это не повредит вашему профилю, который вы можете использовать для ручного просмотра. Что вы подразумеваете под _Firefox se ssion id_? Где он появляется? –

+0

Я получил _session id_ отсюда: [link] (http://stackoverflow.com/q/36476111/7529915). Это _Firefox session id_? – dheer

ответ

0

Что касается Селена 2.xx и Firefox 45.6esr (на Linux) это выглядит так:

Каждый раз, когда сеанс запущен новой копия вашего профиля Firefox создается в каталоге темпа вашей системы. Если не указано - например, в конструкторе FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile) - выполняется профиль по умолчанию. В любом случае профиль скопирован.

Причина, вероятно, в том, что если Selenium аварийно завершает работу - это не повредит профилю, который вы можете использовать для ручного просмотра. Более того, временный профиль удаляется при вызове WebDriver.quit().

Таким образом, каждый сеанс имеет уникальный идентификатор и уникальный временный профиль. Обратите внимание, что имя временного профиля не выводится из идентификатора сеанса.

Я полагаю, что это то же самое для других версий Selenium и Firefox и даже для операционных систем (по крайней мере, для Windows). Для того, чтобы выяснить, используйте этот код:

FirefoxDriver driver = new FirefoxDriver(); 
System.out.println(driver.getSessionId()); 

String tmpDir = System.getProperty("java.io.tmpdir"); 
System.out.println(tmpDir); 

File dir = new File(tmpDir); 
String[] files = dir.list(); 
for (String file : files) { 
    System.out.println(file); 
} 

Выход что-то вроде (первый из них является идентификатор сеанса, последний из которых является имя каталога с временным профилем Firefox:

60bdbf4a-f4b3-4e71-a6be-9e3ad28a3b09 
[...] 
/tmp 
[...] 
anonymous8971467451928507515webdriver-profile 

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

  • Нет связанных вопросов^_^