Python 硒在任何时候都会弄糟';chromedriver';它不是';关闭活动窗口

Python 硒在任何时候都会弄糟';chromedriver';它不是';关闭活动窗口,python,selenium,Python,Selenium,(我正在开发MacBookPro 2020) 每当chrome驱动程序窗口不是“活动”窗口时,我的selenium自动化代码似乎就会出错。更具体地说: selenium需要向网站发出请求并从中获取一些数据,但每当我最小化chrome驱动程序窗口时,它不会获取新数据,而是复制它以前提供给我的数据 我相当确定这不是因为我的代码,而是因为selenium,所以我想问:当chrome驱动程序窗口最小化时,我如何允许selenium正常工作 代码如下: for i in df2["keyword

(我正在开发MacBookPro 2020)

每当chrome驱动程序窗口不是“活动”窗口时,我的selenium自动化代码似乎就会出错。更具体地说:

selenium需要向网站发出请求并从中获取一些数据,但每当我最小化chrome驱动程序窗口时,它不会获取新数据,而是复制它以前提供给我的数据

我相当确定这不是因为我的代码,而是因为selenium,所以我想问:当chrome驱动程序窗口最小化时,我如何允许selenium正常工作

代码如下:

for i in df2["keywords"]:
    time.sleep(1)
    search.send_keys(i)
    search.send_keys(Keys.RETURN)
    try:
        element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "p.total-results.js_total_results"))
    )
    except:
        print("FIRST ELEMENT NOT FOUND")
        driver.quit()
    search = driver.find_element_by_css_selector("input#searchfor.wsp-search__input")
    data['aanbod'] = driver.find_element_by_css_selector('p.total-results.js_total_results').text
    df3 = df3.append(data, ignore_index=True)
    search.clear()
    print(data)
正如你所看到的,我将硒与熊猫结合使用进行数据分析。这就是我关注chrome驱动程序窗口时数据的样子:

{'aanbod': '92 resultaten'}
{'aanbod': '167 resultaten'}
{'aanbod': '1.144 resultaten'}
{'aanbod': '102 resultaten'}
{'aanbod': '829 resultaten'}
{'aanbod': '91 resultaten'}
{'aanbod': '125 resultaten'}
{'aanbod': '225 resultaten'}
{'aanbod': '800 resultaten'}
{'aanbod': '276 resultaten'}
如果我不把注意力集中在窗户上,这就是它的样子:

{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
{'aanbod': '92 resultaten'}
chrome版本:mac 85.0.4183.121(官方版本)(64位),
chrome驱动程序版本:mac 64 ChromeDriver 85.0.4183.87

如果希望脚本在后台运行,请尝试使用chrome的
无头
选项。在无头模式下工作时,最好也添加
--start maximized
,因为在某些情况下,如果没有此选项,可能会导致无法识别元素

在脚本开头添加以下行:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--start-maximized")

您将不再看到浏览器和所有的点击、导航等操作,而只看到控制台中的结果。

您能详细解释一下吗?您可以使用这些指南作为参考。和。我想这会提高答案的质量。你使用的是哪个版本的chrome驱动程序?我已经编辑了这个问题,谢谢你的提示。我还添加了我正在使用的chrome驱动程序版本。为什么chrome窗口最小化?您想让脚本在您执行其他操作时在后台运行还是..?@0buz是的,完全正确。我希望它在后台运行,这样我仍然可以在mac上工作。(我不可能用其他语言重写所有代码,因此它将在后台运行)