2012-01-03 2 views
4

У меня 2 вопроса:Селен WebDriver печенья/использование веб-браузер уже открыт

  • Я построил сценарий WebDriver селена, который работает правильно, но он открывает новый экземпляр Firefox. Можно ли использовать Firefox, который уже открыт? Если да, то как?

  • Мне нужно отправить информацию на сайт, чтобы моя сессия активна. Я думаю использовать cookie и отправлять запрос каждые 10 минут. Я не знаю, если это хорошая идея ... (я не могу использовать селен аутентификации, так как сайт создать таблицу с номерами, как на сайте банка)

Если кто-то может дать мне некоторую поддержку. ..

ответ

3

Если вы используете Seleium2/WebDriver, вы можете создать запуск экземпляра браузера, вызвав new FirefoxDriver(). Затем его можно повторно использовать для нескольких тестов. Например, если вы используете JUNIT, вы можете создать драйвер FirefoxDriver в @BeforeClass и выйти из него в @AfterClass.

browserSessionReuse

Ниже SO пост будет объяснить, почему сеанс может быть истекающий. Это также может зависеть от того, как вы написали свой тестовый пример (возможно, вы инициализируете его в методе setUp()). Selenium in -browserSessionReuse mode launchs a new browser

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

+0

Отлично. Спасибо за ваш ответ Пангея. – Matt

+0

Из справочной документации сервера селена -browserSessionReuse: останавливает повторную инициализацию и нереста браузера между тестами. Я попытался запустить 2 теста вручную, но он не запускался в том же сеансе. Это другое дело? –

+0

Я принимаю ответ, но я разместил 2 вопроса ... – Matt

0

Если вы открыли экземпляр FireFox Browser с помощью firefox webdriver в тестовом примере, и вы не закрыли этот экземпляр, вы можете использовать этот экземпляр с помощью RemoteWebDriver. Вы даже можете использовать этот экземпляр, если один тестовый пример не выполнен, и вы хотите запустить другой тестовый пример вручную. используйте этот код.

IWebDriver WebDriver = null; 

try 
{ 
System.Uri uri = new System.Uri("http://localhost:7055/hub"); 
WebDriver = new RemoteWebDriver(uri, DesiredCapabilities.Firefox()); 
Console.WriteLine("Executed on remote driver"); 

} 

catch (Exception) 
{ 

WebDriver = new FirefoxDriver(firefoxProfile); 
Console.WriteLine("Executed on New FireFox driver"); 

} 

см. Подробности здесь, в этом сообщении в блоге. http://binaryclips.wordpress.com/2014/09/16/selenium-web-driver-in-c-how-to-continue-script-on-the-already-opened-browser-instance/

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