# 两个同时设置才行
# 实现效果:加载状态停止,进行代码下一步操作
driver.set_page_load_timeout(10)
driver.set_script_timeout(10) # 这两种设置都进行才有效
try:
driver.get("https://shopee.co.id/search?keyword=jam%20tangan&page=" + str(page) + "&sortBy=" + rankBY)
except:
driver.execute_script('window.stop()')
————————————————
版权声明:本文为CSDN博主「cool_soup29」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cool_soup29/article/details/88657643

在执行自动化测试用例过程中,发现因为网络慢或其他原因导致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()")

selenium学习笔记——driver.get(url) 页面加载时间太长的更多相关文章

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

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

  2. [转载]Python & Selenium -- 页面加载时间过长&启动指定FF

    原文链接:https://my.oschina.net/u/2344787/blog/400507?p={{page}} 1. selenium webdriver在get方法会一直等待页面加载完毕才 ...

  3. Webdriver get(url)加载时间太长

    运行Selenium脚本时,发现有时候由于网络或性能问题,加载网页时间太长,无法继续执行后续操作,但是实际上元素都已经加载出来了. 解决 # 设置页面加载超时时间 d.set_page_load_ti ...

  4. Selenium WebDriver- 指定页面加载时间

    #encoding=utf-8 import unittest import time from selenium import webdriver from selenium.webdriver i ...

  5. selenium加载时间过长

    为了获取网站js渲染后的html,需要利用selenium加载网站,但是会出现加载时间过长的现象,因此可以限制其加载时间以及强制关掉加载: # !/usr/bin/python3.4 # -*- co ...

  6. 利用Navigation Timing测量页面加载时间

    最近在看一本名为<web性能实践日志>的书籍,其中第十三章"网络计时"中介绍了一种比较新的计算页面各部分加载时间方法,这也是W3C Web性能工作小组正在做的事情,接下 ...

  7. 优化JS加载时间过长的一种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 去年公司在漳州的一个项目中,现场工程人员反映地图部分出图有点 ...

  8. 高性能javascript学习笔记系列(1) -js的加载和执行

    这篇笔记的内容主要涉及js的脚本位置,如何加载js脚本和脚本文件执行的问题,按照自己的理解结合高性能JavaScript整理出来的 javascript是解释性代码,解释性代码需要经历转化成计算机指令 ...

  9. 使用Filter跟踪Asp.net MVC页面加载时间

    最近,客户一直反馈系统使用慢,有时候能够指出具体是哪个页面,有时候又只是笼统地反馈慢.这种问题就像是幽灵一样,非常不好处理.因为导致这种问题的因素非常之多,而且在开发工程中,很难模拟出实际运行是的环境 ...

随机推荐

  1. [JZOJ 100025] 棋盘

    题意:求剩余面积. 首先吐槽题号:究竟\(JZOJ\)有多少未公开的题目... 思路: 简单的一批啊... 不知道为啥上午不过下午就过了?? 难道是海螺姑娘光顾我?? 多说了都是灵异故事... 其实就 ...

  2. Linux ifconfig 单网卡配置多网段

      1 2 3 4 5 6 7 8 9 10 11 ifconfig eth0 down ifconfig eth0 hw ether 01:02:03:04:05:06 ifconfig eth0  ...

  3. anjs 分词器初步使用

    由于ik没有歧义分词的功能,打算用anjs 对前端传递过来的数据用anjs进行分词 anjs 操作文档官网地址:http://nlpchina.github.io/ansj_seg/ 刚刚开始由于ja ...

  4. Soci介绍

    soci是一个用C++封装的数据库访问库,目前通过 “前端(应用程序)/核心/后端(数据库适配)”模式支持firebird,mysql,sqlite3,oracle,postgresql,odbc多种 ...

  5. myeclipe 中配置maven

    1.配置maven 2. 2

  6. 未知高宽的div在其父级div中垂直居中显示

    (一)如果已知子div的高宽 .father { position: relative; } .child { width: 100px; height: 80px; position: absolu ...

  7. JS对象 向上取整ceil() ceil() 方法可对一个数进行向上取整。 语法: Math.ceil(x) 注意:它返回的是大于或等于x,并且与x最接近的整数。

    向上取整ceil() ceil() 方法可对一个数进行向上取整. 语法: Math.ceil(x) 参数说明: 注意:它返回的是大于或等于x,并且与x最接近的整数. 我们将把 ceil() 方法运用到 ...

  8. META标签的定义与使用(一、HTTP标题信息(http-equiv))

    META标签分两大部分:HTTP标题信息(http-equiv)和页面描述信息(name). 一.http-equiv类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页 ...

  9. Leetcode208. Implement Trie (Prefix Tree)实现Trie(前缀树)

    实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Trie(); trie.insert(" ...

  10. 深度探索C++对象模型之第二章:构造函数语意学之成员初始值列表

    当我们需要设置class member的初值时,要么是经过member initialization list ,要么在construcotr内. 一.先讨论必须使用member initializa ...