首页 > 解决方案 > 硒痛苦缓慢

问题描述

所以我有一个从网站上抓取数据的 selenium 脚本。遗憾的是,我无法共享该网站,但我注意到我制作的几个刮板存在同样的问题。我已经设置了,如果遇到任何异常就返回'Not Found',因为这可以通过我正在寻找的信息来实现。当找到信息时,脚本非常快,但如果不是,它就很慢。

有什么建议可以加快速度吗?

        form = driver.find_element_by_id('formSearchCriteria')
        form.send_keys(userID)
    
        searchButton = driver.find_element_by_id('phs-save-btn')
        searchButton.click()
    
        nextButton = driver.find_elements_by_xpath('//*[@class ="jss137"]')
        nextButton[0].click()
    
        list = driver.find_elements_by_xpath('//*[@class ="balance-field"]')
        l = str(list[1].text)
    
        ignore_keys = ["User ","Identifier"]
        for ignore in ignore_keys:
            l = l.replace(ignore,"")
        return l
    except:
        return 'Not Found'

标签: pythonselenium

解决方案


该脚本是缓慢的原因

nextButton = driver.find_elements_by_xpath('//*[@class ="jss137"]')

list = driver.find_elements_by_xpath('//*[@class ="balance-field"]')

这两行。

事情是他们都返回列表。

现在,如果找到一个元素,一切都很好。它会按预期工作。

但如果不是,它会等待您套件中的任何隐式等待。

所以如果你想让他们花更少的时间,我建议你减少 ImplicitWait。

driver.implicitly_wait(10) 

10 甚至更少应该适合您。


推荐阅读