selenium学习笔记11——driver.get(url) 页面加载时间太长

在执行自动化测试用例过程中,发现因为网络慢或其他原因导致driver.get(url) 时,页面一直在加载,页面没有加载完成就不会去继续执行下面的动作,但是实际上需要操作的元素已经加载出来了。

解决方法

第一步:使用 set_script_timeout() 设置等待最大时间。

第二步:到了最大等待时间后页面如果仍然没有加载完成,执行js代码, driver.execute_script("window.stop()") 停止页面加载,执行下面的自动化测试步骤。
代码如下:

        driver = self.driver
        # 设置页面最大加载时间
        driver.set_page_load_timeout(10)
        try:
            driver.get(self.base_url)
        except TimeoutException:
            print '!!!!!!time out after 10 seconds when loading page!!!!!!'
            # 当页面加载时间超过设定时间,通过js来stop,即可执行后续动作
            driver.execute_script("window.stop()")
  1. 设置了最大等待时间为10秒。
  2. 如果10秒没有加载完成,打印“time out after 10 seconds when loading page!”,然后停止加载,直接执行下面的测试步骤。

代码封装

# -*- coding: utf-8 -*-
# @Time    : 2018/8/6 11:12
# @Author  : 银河以北
# @Email   : smilegks@163.com
# @Introduction   : XXX

def page_loading_timeout(driver, url, time):
    '''
    :param driver: 参数1,传入浏览器对象
    :param url: 参数2,传入url
    :param time: 参数3,设置超时时间,单位是秒
    :return:
    '''
    driver.set_page_load_timeout(time)
    try:
        driver.get(url)
    except:
        print "!!!!!!time out after %s seconds when loading page!!!!!!" % time
        # 当页面加载时间超过设定时间,通过js来stop,即可执行后续动作
        driver.execute_script("window.stop()")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容