与Selenium开设超过9个会议

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

我试图使用Selenium一次访问一个有几十个会话的网站,但每当我尝试设置超过9个会话时,它会说“chromedriver.exe没有响应”并且会话开始关闭。

这是我的代码:

from selenium import webdriver
import time

url = "website URL"
amount = 36

def generateBrowsers():
    for x in range(0, amount):
        driver = webdriver.Chrome(executable_path="C:/Users/user/Documents/chromedriver_win32/chromedriver.exe")
        driver.get(url)
        time.sleep(3)

generateBrowsers()

有谁知道什么可能是错的?

python google-chrome selenium selenium-chromedriver
1个回答
1
投票

从逻辑上讲,您的代码块没有错误。

但是,当您尝试一次打开36个会话时,您需要考虑以下事实:

  • 每次打电话给driver = webdriver.Chrome(executable_path="C:/Users/user/Documents/chromedriver_win32/chromedriver.exe")都会发起: 1. A new WebDriver instance 2. A new Web Browser instance
  • 每个WebDriver实例和Web Browser实例都需要占用一些: 1. CPU 2. Memory 3. Network 4. Cache

现在,当你从你的系统中执行你的Test Suite时,它运行了很多其他Applications(其中一些可能在Start Up)尝试在可用的CPUMemoryNetworkCache内容纳。因此,无论何时,所提到的参数的使用超出阈值水平,下一个新的chromedriver.exechrome.exe将无法正确生成。在你的情况下,chromedriver.exe无法产卵。因此,您会看到错误:

chromedriver.exe is not responding

如果您需要一次产生36个会话,则需要使用:

  • Selenium in Grid ConfigurationSelenium GridHubNode组成,你可以在Nodes的数量中分发所需数量的会话。
© www.soinside.com 2019 - 2024. All rights reserved.