Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2019 11:19:31

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

python + selenium. Запускается лишний экземпляр браузера при выносе функций в отдельный модуль

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

 from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://...')
def clickOne():
    oneBtn = driver.find_element_by_xpath("//*[@class='digits']/li[7]")
    oneBtn.click()
def clickTwo():
    twoBtn = driver.find_element_by_xpath("//*[@class='digits']/li[8]")
    twoBtn.click()

есть ли способ устранения лишнего браузера?

Офлайн

#2 Март 3, 2019 11:29:17

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

python + selenium. Запускается лишний экземпляр браузера при выносе функций в отдельный модуль

У тебя открывается два браузера?
Из твоего описания я понял это так, что в одном модуле ты вызываешь драйвер, а во втором модуле выполняешь клики. Может сделать нужно так?
mod_1.py

 from selenium import webdriver
from mod_2 import clickOne, clickTwo
driver = webdriver.Firefox()
driver.get('http://...')
clickOne(driver)
clickTwo(driver)
mod_2.py
 def clickOne(driver):
    oneBtn = driver.find_element_by_xpath("//*[@class='digits']/li[7]")
    oneBtn.click()
def clickTwo(driver):
    twoBtn = driver.find_element_by_xpath("//*[@class='digits']/li[8]")
    twoBtn.click()

Офлайн

#3 Март 3, 2019 11:54:26

Fixx_Jr
Зарегистрирован: 2019-01-30
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

python + selenium. Запускается лишний экземпляр браузера при выносе функций в отдельный модуль

спасибо, помогло

Офлайн

#4 Март 3, 2019 18:49:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

python + selenium. Запускается лишний экземпляр браузера при выносе функций в отдельный модуль

Fixx_Jr
модуль выглядит так
Ну дык, для чего по вашему придумали вот такую конструкцию?
 if __name__ == '__main__':



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version