Selenium循环脚本使用的内存过多,最终导致Chrome崩溃

时间:2019-06-14 12:14:22

标签: python selenium

我要删除的URL很大,我使用for循环遍历每个URL。

最终,在列表的x元素中,我的Chrome窗口将崩溃(浏览器窗口中显示“ Aw Snap!”错误)。我不知道要解决此问题。

我无法共享我的代码,但是是这样的:

very_large_url_list = [url1,url2,url3,url4 ...]

for x in very_large_url_list:
    driver.get(x)
    doStuff()

如果我尝试在每次迭代中关闭驱动程序,像这样:

for x in very_large_url_list:
    driver.get(x)
    doStuff()
    driver.close()

我会收到一条错误消息,指出会话ID无效。如果我不关闭它,那么最终将发生内存泄漏,并且我将无法完成列表的迭代。我该怎么做才能解决此问题?

如果我不够清楚,请告诉我,以便我编辑问题!

2 个答案:

答案 0 :(得分:2)

如果您尝试在每次迭代中关闭驱动程序,是否不应该这样做?

for x in very_large_url_list:
    driver = webdriver.Chrome()
    driver.get(x)
    doStuff()
    driver.close()

答案 1 :(得分:-1)

您知道我们也可以不使用任何浏览器来打开URL吗?也是常见的面试问题。让我们学习吧。

让我们先执行一些步骤:

  1. 打开浏览器。
  2. 按F12键。
  3. 切换到控制台标签。
  4. 键入window.location='https://www.redbus.in',然后按Enter键。

您会注意到redbus网站已加载。

这是不使用get()navigate()之类的任何方法来加载URL的方法。上面的语句称为JavaScript命令。稍后我们将介绍JavaScript概念。