如何在整个过程中保持Selenium webdriver最小化?

问题描述 投票:0回答:1

我开发了一个机器人,在工作的时候,在后台下载一些文件。但是每次下载的时候,屏幕上都会出现webdriver的画面,我不得不手动将其最小化。有什么建议吗?

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")

我的情况是不能用无头的

python selenium selenium-chromedriver
1个回答
2
投票

如这里提到的。Selenium Web-driver文档

您可以使用以下方法最小化或最大化您的浏览器窗口 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()
© www.soinside.com 2019 - 2024. All rights reserved.