1. PageLoadStrategy :

当调用driver.get("https://xxxx.xxx.xxx")来访问某页面时,get方法通常会阻塞浏览器直到页面完全加载后才执行后面的动作,若一个页面加载过慢,则会导致get方法一直阻塞。有时候希望页面在加载过程中就开始检测元素是否存在,而不是等到页面加载完了才开始检测,想要实现这个效果,可以用ChromeOptions类下的setPageLoadStrategy方法(Java,Chrome浏览器):

import org.openqa.selenium.PageLoadStrategy;

import org.openqa.selenium.chrome.ChromeOptions;

ChromeOptions options = new ChromeOptions();

options.setPageLoadStrategy(PageLoadStrategy.NONE);

driver=new ChromeDriver(options);

其中PageLoadStrategy有三种选择:

(1) NONE: 当html下载完成之后,不等待解析完成,selenium会直接返回

(2) EAGER: 要等待整个dom树加载完成,即DOMContentLoaded这个事件完成,仅对html的内容进行下载解析

(3) NORMAL: 即正常情况下,selenium会等待整个界面加载完成(指对html和子资源的下载与解析,如JS文件,图片等,不包括ajax)

以下这段来自https://blog.csdn.net/wkb342814892/article/details/81611737,感谢原作者

实际上,对于一个新加载的dom,页面啥时候开始接受命令由页面的加载策略决定,也就是说,我们通过修改页面加载策略,可以使页面即使处于加载中,也能接受我们的命令,从这点可以解决webdriver.get的阻塞问题。而每类webdriver都有一个对应的配置文件放在特定的类DesiredCapabilities里面,通过修改里面的pageLoadStrategy,可以使webdriver的页面加载策略发生改变。

2. selenium的几种等待方式:

(1) Thread.sleep(XXX):硬等待,必须过了XXX毫秒以后才执行后面的命令。

(2)

WebDriverWait wait=new WebDriverWait(driver,10);

wait.until(ExpectedConditions.presenceOfElementLocated(By.id("XXX")));

最多等待10秒,一旦等到XXX元素出现即退出等待执行后面操作,10秒后仍然没有出现XXX元素则抛出异常。

(3) driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

所有的findElement方法都会隐式等待10s

selnium 判断页面加载完成_Selenium 的页面加载以及几种等待的问题相关推荐

  1. java 获取页面元素的位置_Selenium Java 页面元素定位2

    一.操作目的 1.1 自动化测试常用操作 1.定位网页上的元素,并存储到一个变量中: 2.对变量进行操作,比如点击或输入文字: 3.设定页面元素的操作值: 二.定位方法汇总 2.1 findEleme ...

  2. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  3. python selenium 等待页面加载_python selenium 三种等待方式详解(实战常用)

    引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待了,等待元素可见再继续运行程序: 注:当使用该放发的时 ...

  4. 页面加载更多的css,十种加载样式

    原标题:十种加载样式 对于设计师来说往往更多的是注重界面的设计,从而忽略了用户对于加载等待的体验,如何用不同的加载来缓解用户的等待焦虑,从而提升用户对产品的体验呢?下面就来和大家介绍一下都有哪些加载样 ...

  5. ios 微信浏览器 预加载_小程序页面预加载技术

    lightning-load-project 集成方式 看不效果览图的话,请看博客 https://blog.csdn.net/sinat_27612147/article/details/80802 ...

  6. 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题

    使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题 参考文章: (1)使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题 ( ...

  7. selenium截图模糊_Selenium截屏 图片未加载的问题解决--【懒加载】

    需求: 截屏后转PDF. 问题: selenium截屏后,图片未加载 如下图: 原因: 网站使用了懒加载技术:只有在浏览器中纵向滚动条滚动到指定的位置时,页面的元素才会被动态加载. 什么是图片懒加载? ...

  8. flutter 页面加载动画_Flutter撸一个加载动画

    目标 先上效果图: 目标.gif 是不是感觉跟ProgressDialog创建出来的一毛一样!!! 实现思路 使用对话框 首先想到的是用Flutter自带的SimpleDialog对话框,但是想到这玩 ...

  9. 一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载?

    一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载? 1.使用 Sprites 图片技术 它将一个页面涉及到的所有零星图片都包含到一张大图中去,然后利用 CSS 技术展现出来.这样一来, ...

  10. html加载完成 产生动作,页面加载功能设计总结

    关于"前进",我们很难给出一个准确的定义.狭义上的"前进"指的是用户触发某个交互动作进入一个新页面.如何在进入一个新页面的过程中给予用户良好的体验呢?我们可以从 ...

最新文章

  1. 美国物理超级计算机,美国科学家在物理学的一个分支领域朝着开发超级计算机迈进了一步。这一分支领域研究的是人眼看不见的粒子。...
  2. 交管123缴费显示代理服务器异常,交管12123服务异常怎样办 交管12123 APP服务异常处理办法...
  3. 寺库等奢侈品电商补贴下的奢侈品市场,会是怎样的未来
  4. 思考题-算法小思考题
  5. Flex builder3与eclipse整合 转载
  6. 很不错的Windows 控件 Developer Express Inc.NET
  7. EasyPR车牌识别学习总结
  8. 基于LiteOS Studio零成本学习LiteOS物联网操作系统
  9. 想成为一个Web前端开发工程师,需要掌握的详细知识总结
  10. C++RAII惯用法:C++资源管理的利器
  11. dubbo整合springmvc 使用 学习二(spring+dubbo+zookeeper单机服务)
  12. 宽度学习(BLS)网络的研究和应用
  13. 集合的一些练习题1(Collection+Map)
  14. html css屏蔽右键,css右键菜单.html
  15. oracle dbms_lob trim,DBMS_LOB
  16. EPP-常见问题总结
  17. 人工智能在广告行业的应用
  18. uniapp项目H5端横屏问题-样式错乱+字体大小+video
  19. 一个关于LSTM生成歌词的练习
  20. 重复测量数据多重填补 SAS code

热门文章

  1. 淘宝客APP源码导购APP源码代理淘客APP源码
  2. apqp过程流程图范本_过程流程图(APQP要求)
  3. java就业班学什么呀_传智播客JAVA就业班的学习心得
  4. 遗传算法详解及matlab代码实现
  5. 卡密社区源码无加密完整版(php源码+mysql脚本)
  6. 网络工程计算机等级,网络工程师题库_计算机等级考试题库_考试资料网
  7. 人工智能机器学习————MINST数据集的简单处理
  8. ios property 之 strong weak unsafe_unretained
  9. 【AD18】原理图生成PDF
  10. leaflet地图之 获取经纬度