Как сохранить веб-драйвер Selenium минимальным на протяжении всего процесса? - PullRequest
0 голосов
/ 22 апреля 2020

Я разработал бота для загрузки некоторых файлов в фоновом режиме, работая. Но каждый раз, когда выполняется загрузка, на экране появляется экран веб-драйвера, и я вынужден вручную свернуть его. Любое предложение?

options = Options()

options.add_experimental_option("prefs", {
            "plugins.plugins_list": [{"enabled": False, "name": "Chrome PDF Viewer"}],
           "download.default_directory":"D:\Download", 
           "download.extensions_to_open": "applications/pdf",
           "download.prompt_for_download": False,
           "download.directory_upgrade": True,
           "plugins.always_open_pdf_externally": True,
           "safebrowsing_for_trusted_sources_enabled": False,
           "safebrowsing.enabled": False,
           "profile.default_content_setting_values.notifications" : 2
           })

driver = webdriver.Chrome('chromedriver',chrome_options=options)
driver.get("https://www.copel.com/AgenciaWeb/autenticar/loginCliente.do")

без головы не вариант в моем случае

1 Ответ

2 голосов
/ 22 апреля 2020

Как упомянуто здесь: Документация веб-драйвера Selenium

Вы можете свернуть или развернуть окно браузера, используя функции minimize_window() и maximize_window().

Добавление этого линия решает вашу проблему:

driver.minimize_window()

Но только добавление этого может не помочь, если ваш сайт откроет новую вкладку после нажатия на какую-либо ссылку. Таким образом, добавление этих строк гарантирует, что ваш скрипт работает с последней открытой вкладкой, а не с первой вкладкой. Добавьте эти строки в ваш скрипт после каждого события щелчка, которое приводит к открытию новой вкладки.

win_list = driver.window_handles
driver.switch_to.window(win_list[-1])

Например, здесь, l1 выдаст ошибку, если мы не переключимся на последнюю открытую вкладку.

driver.get("https://sites.google.com/a/chromium.org/chromedriver/home")

l0 = driver.find_element_by_xpath('/html/body/div[2]/div/div[1]/div/div[2]/div/table/tbody/tr/td[2]/div/div[3]/div/table/tbody/tr/td/div/h2/font/a')
l0.click()  # This click event results in opening a new tab

win_list = driver.window_handles # This gives the list of all tabs
driver.switch_to.window(win_list[-1]) # To switch to the last tab opened

l1 = driver.find_element_by_xpath('/html/body/div[2]/div/div[1]/div/div[2]/div/table/tbody/tr/td[1]/div/div/ul/li[2]/div/a')
l1.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...