2016-02-24 3 views
2

Я использую Python Selenium, чтобы открыть браузер Firefox и перейти к URL-адресу. Функция я использую, чтобы сделать это ...Python Selenium открыть URL-адрес в том же окне Firefox

def openurl_function(): 
    from selenium import webdriver 
    from selenium.common.exceptions import NoSuchElementException 
    from selenium.webdriver.common.keys import Keys 

    from selenium import webdriver 
    driver = webdriver.Firefox() 
    driver.get('http://www.example.com') 

При запуске функции она всегда открывает новый экземпляр FireFox, есть способ, чтобы его просто открыть, используя тот же экземпляр браузера?

В настоящее время, если я запускаю функцию 10 раз, я открываю 10 браузеров FireFox.

ответ

4

Просто продолжайте повторное использование того же driver. Вы создаете новый браузер, каждый раз, когда вы звоните

driver = webdriver.Firefox() 

Кроме того, потому что вы никогда не quit() от драйвера, вы, вероятно, все браузеры остаются открытыми сиротами, потому что вы удалили ручку к ним, когда вы создали новый браузер.

+0

Так что мне нужно будет переместить драйвер = webdriver.Firefox() вне функции, чтобы он запускался только один раз? – fightstarr20

+1

Да. Просто создайте объект в глобальном контексте и передавайте его в свою функцию каждый раз (или используйте свойство объекта, если оно находится внутри класса). – jsfan

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