python - 最后使用 Selenium 时,自动化 Chromium Webdriver 变得非常慢

标签 python selenium selenium-webdriver webdriver

我正在使用Python selenium框架和Chrome webdriver(版本3.4.3)在linux平台=Linux 3.13.0-24-generic x86_64下使用Chromium Web浏览器58.0.3029.110(64位)多次加载网页。

一开始它工作得很好。然而,多次加载网页后,网页浏览器打开速度变慢,然后打不开。我感觉系统也变慢了。

我有两个问题。主要的问题是如何让 chromium 浏览器保持快速运行?其次,为什么当我用 driver.quit() 替换 driver.close() 时,连续打开网络浏览器需要花费太多时间?

这是我的Python代码

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
import time
Time_Out=60
site="http://www.google.com.au"

def Loading_Webpage(website):
   option = webdriver.ChromeOptions()
   driver = webdriver.Chrome(chrome_options=option, executable_path="/usr/lib/chromium-browser/chromedriver")
   driver.set_page_load_timeout(Time_Out)
   try:
       driver.get(website)
   except TimeoutException:
       return 1
   driver.close()
raw_input('Start Running')
for i in range(500):
    start=time.time()
    Loading_Webpage(site)
    print i, time.time()-start

最佳答案

我在 Window 10 上运行了您的测试的变体。以下是我的结果。网络驱动程序的启动变化最大,紧随其后的是加载页面的时间。 driver.quit() 时间非常恒定。没有内存泄漏(没有 chrome 实例闲置)。显然,运行此程序的最快方法是每次导航到页面时不要退出驱动程序;)

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
import time
Time_Out=60
site="http://www.google.com.au"

def Loading_Webpage(i, website):
   start = time.time()
   option = webdriver.ChromeOptions()
   driver = webdriver.Chrome(chrome_options=option)
   driver.set_page_load_timeout(Time_Out)
   dstart = time.time() - start
   try:
       driver.get(website)
       dload = time.time() - start - dstart
   except TimeoutException:
       return 1
   driver.quit()
   dquit = time.time() - start - dstart - dload
   all = time.time() - start
   print(i, dstart, dload, dquit, all)

for i in range(500):
    Loading_Webpage(i, site)

关于python - 最后使用 Selenium 时,自动化 Chromium Webdriver 变得非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44816613/

相关文章:

python - 为什么我的 pygame 在 Mac 上加载到空白屏幕?

python - 在 Python 脚本中为 C++ 代码运行构建 (make)

java - 并行执行 TestNG 测试,一个浏览器不会关闭

python - Cassandra "Unable to connect to any servers"通过 Django,而 cqlsh 可以工作

python - 如何在跨度矩形顶部绘制 fiddle 图的主体?

带有 Selenium 的 Python : rerun on pre-existing browser

c# - 如何在 PhantomJS + Selenium 中隐藏控制台?

ruby - 无法在 60 秒内获得稳定的 firefox 连接

java - Selenium 无法识别弹出窗口上的对象

selenium - 如何使用 Selenium WebDriver/RC 测试 UI 上显示的广告