Webdriver如何解决页面元素过期:org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up
当运行Webdriver时抛出如下异常:org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up。目前解决办法似乎只有一个,也是最显而易见的方式,重新定位一次该元素。我们不妨看下该异常所表达的意思:元素没有在缓存中找到,也许页面已经改变了当你在查找这个元素的时候。
在什么情况下会造成这种异常:当页面被刷新的时候,你还要操作这个页面上的元素。这句话什么意思?为什么说是在刷新的时候,我们不妨想象一个业务场景:当你在提交一个订单,提交完成之后,页面又刷新,重定向到了当前页面,然后你又需要提交另一个订单,在你第二次点击提交按钮的时候,就会抛出这个异常。发生的前提是:你第一次提交的时候是定位了提交按钮的:WebElement confrimBtn = driver.findElement(By.id("confrimBtn"));然后点击提交按钮,confrimBtn.click(),第二次提交订单时就偷懒了,直接confrimBtn.click(),然后,就没有然后了,自己死活找不到出错原因。
这里主要解释为什么会出现这个错误:当你需要对同一个页面进行多次重复的操作的时候,第一次定位的元素,页面刷新后,在你第二次,第三次需要调用时,浏览器默认认为它是失效的,不允许你去调用它。就相当于你买了张电影票,看完了这场电影,过了几天,你朋友约你一起去电影,你拿着上次的票,别人还会让你进去吗?
Webdriver如何解决页面元素过期:org.openqa.selenium.StaleElementReferenceException: Element not found in the cache - perhaps the page has changed since it was looked up的更多相关文章
- selenium Element not found in the cache - perhaps the page has changed since it was looked up接解决
selenium Element not found in the cache - perhaps the page has changed since it was looked up.这个问题爆出 ...
- org.openqa.selenium.StaleElementReferenceException
org.openqa.selenium.StaleElementReferenceException如何解啊.什么原因造成的,貌似有时会出现,有时不会出现
- Selenium解决页面元素不在视野范围内的问题
当需要使用滚动条才能使页面元素显示在视野范围内时,必须用代码处理下,才能对其进行操作. 处理其实也很简单,就是调用JS函数. driver.executeScript("arguments[ ...
- selenium:解决页面元素display:none的方法
在UI自动化测试中,有时候会遇到页面元素无法定位的问题,包括xpath等方法都无法定位,是因为前端元素被设置为不可见导致. 这篇博客,介绍下如何通过JavaScript修改页面元素属性来定位的方法.. ...
- java selenium webdriver第二讲 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- Selenium2学习-038-firefox、webdriver版本不对称问题解决:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055
今天有个朋友在群里问,为何脚本运行不通过,其脚本操作步骤简单描述如下: 1.启动火狐浏览器 2.打开百度 3.查询框输入关键字 4.点击按钮[百度一下] 脚本挺简单的,其给出的应用报错信息如下所示: ...
- python+selenium:点击页面元素时报错:WebDriverException: Message: Element is not clickable at point (1372.5, 9.5). Other element would receive the click: <li style="display: list-item;" id="tuanbox"></li>
遇到一个非常郁闷的问题,终于解决了, 问题是这样的,NN网站的价格计划,每一个价格计划需要三连击才能全部点开,第一个房型的价格计划是可以正确三连击打开的,可是第二个房弄就不行了,报错说不是可点击的 ...
- org.openqa.selenium.ElementNotInteractableException: element not interactable
F12查看元素确实存在的 有人说延长加载时间 webDriver.manage().timeouts().implicitlyWait(, TimeUnit.SECONDS); // 等待5秒加载完成 ...
- java selenium后报错Element not found in the cache元素定位要重新赋值之前的定义
习惯上把定位的元素在操作之前就定位好, 例如: WebElement element1=driver.findElement(...); ----------declaration1 Web ...
随机推荐
- HDU 1040 As Easy As A+B(排序)
As Easy As A+B Problem Description These days, I am thinking about a question, how can I get a probl ...
- C# 常用接口学习 IEnumerable<T>
作者:乌龙哈里 时间:2015-10-24 平台:Window7 64bit,Visual Studio Community 2015 本文参考: MSDN IEnumerable<T> ...
- css的三种引入方式、常用的元素选择器以及css三大特性
第一.html文件中如何使用css html文件中使用css有3种方式:链接式.嵌入式.行内式,推荐使用程度依次递减:1.链接式:在html文件通过<link />标签引入,rel属性值必 ...
- javascript初始笔记
1.在html中使用点击事件: <button type="button" onclick="myclick()">click me<butt ...
- linux和windows双系统时间错误解决方法
转自http://www.2cto.com/os/201204/126212.html windows时间会慢8小时,原因: 两个概念: UTC即Universal Time Coordinated, ...
- lr_abort()、exit(-1) 和 return-1之间的区别
int status; status = web_url("Login", "URL=https://secure.computing.com//login.asp?us ...
- Applet签名
applet签名 1.生成密匙库 keytool -genkey -keystore mytest.store -alias mytest -validity 365 -keystore 密匙库 -a ...
- 利用LinkedList实现洗牌功能
分2步: 1.生成扑克牌. 2.洗牌. package com.dongbin.collection; import java.util.LinkedList; import java.util.Ra ...
- unity3d 学习过程记录
通过泰克在线,开始学习视频教程 1.学习 Unity3d零基础教学初级篇:熟悉一下unity编辑器结构和控件以及对控件的基本操作 2.学习Roll-a-ball小项目开发:通过练习制作小游戏,巩固所学 ...
- js--事件对象的理解3
实例2: 跟随鼠标的DIV-- <script> document.onmousemove=function (ev) { var oEvent=ev||event; var oDiv=d ...