Webdriver中关于driver.navigate().to()和driver.get()使用的区别---转载

在做一个后台管理系统的自动化测试,在登录时遇到了一些问题,比如浏览器认为当前url不安全,会有一个拦截,无法直接打开登录页面。这里用到了driver.navigate().to()方法,特此mark下。下面是查询资料的收获:

最近用一个实际的web项目在学习Webdriver,关于新建一个备份任务的过程,先是有一个父页上button弹开一个子页,总共有4个子页,必须前一个页上的必填信息录完,才能在这个页面触发下一个子页。

如果在baseUrl1第一个子页录完信息,第一个子页有重命名校验和必填项校验。

进入baseUrl2第2个子页,用driver.navigate().to(baseUrl2),直接跳转到第2个页,不受第一个子页的约束,直接导航到第2个页面的输入。

这样会导致什么问题,第一个子页的信息是没有经过校验就进入下一个子页。这样,除了上面的重命名没有校验外,另外信息是否已经进入后台保存也是没有管的,而是直接在前台操作上直接进入下一个页面的操作,导致后台有可能数据丢失的情况,webdriver只管了前台界面的操作。

怎么避免后台数据丢失呢,那么就不能用:driver.navigate().to(baseUrl2)方法,这种方法太危险,不管实际的页面逻辑。

改用:driver.get(driver.getCurrentUrl()),这样通过实际的页面逻辑来获取URL结果,原理是当页面校验在前、后台通过后,点击“下一步”触发第二个子页时,会给出第二个子页的URL地址;如果页面校验在前、后台没有通过,那么就触发不了第二个页面,也就获得不了第二个页的URL地址,那么用driver.getCurrentUrl(),就获得不了最新页面的地址,也就无法跳转到第2个页面。如此,用driver.get(driver.getCurrentUrl())这样操作就保证跟页面的逻辑对应起来。也就不会脚本运行完成后,出现备份任务有时生成有时没有生成的情况。

调整到后面的子页,也是用相同的方法:driver.get(driver.getCurrentUrl());

但到第4个子页调整到父页时就不能用这个方法,因为driver.getCurrentUrl()这个获取不到父页的URL地址。只能再用一下driver.navigate().to(fatherURl),用这个方法,只要保证最后一个子页信息录入不存在丢失情况,就不影响备份任务单据的生成了。

时间: 2024-08-11 05:45:55

Webdriver中关于driver.navigate().to()和driver.get()使用的区别---转载的相关文章

java+selenium+new——同一个标签窗口里 ,访问多个网页的后退driver.navigate().back()、前进driver.navigate().forward()、刷新driver.navigate().refresh()等功能 。以及获取当前页面的title属性driver.getTitle()和获取当前页面的url地址driver.getCurrentUrl()

package rjcs; import org.openqa.selenium.firefox.FirefoxDriver; public class xinkaishi { public static void main(String[] args) { System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //设置

转:总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

WebDriver中如何处理Iframe 及 嵌套Iframe

最近在用webdriver进行爬虫的时候,遇到了网站存在iframe的情况,处理了好久没有解决,后来发现原来webdriver自带处理方法,汗颜.. 1.iFrame有ID 或者 name的情况 //进入id="frame1"的frame中,定位id="div1"的div和id="input1"的输入框. dr.switchTo().frame("frame1");dr.findElement(By.id("div1

WebDriver中的api总结--关于鼠标、键盘事件

鼠标事件 在使用鼠标操作之前要先导入存放这些方法的类ActionChains,下面练习一个在百度首页悬停设置元素的列子,完整的导入写法如下: #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() driver.get("http://www.baidu.com") #

webdriver中定位元素,报无法找到元素的问题

webdriver中定位元素,报无法找到元素的问题时,需要查看以下几点: 1 用火狐的firebug插件定位元素,确保这个元素的定位正确: 2 在火狐的firebug插件的,在html页签中输入frame或者iframe去查看这个元素所在的frame或iframe是什么: 写如下语句: WebElement iframe = driver.findElement(By    .xpath("//*[@id='ContentFrame']"));  driver.switchTo().f

转:Selenium WebDriver 中鼠标和键盘事件分析及扩展

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

WebDriver中执行JavaScript

首先,我们使用如下方式初始化driver: 1 WebDriver driver = new FirefoxDriver(); 2 JavascriptExecutor jse = (JavascriptExecutor)driver; 1.直接传入JavaScript代码 可以直接给jse传入javascript代码: 1 jse.executeScript("window.document.getElementById('jingshou').click()"; 2.传入WebEl

总结Selenium WebDriver中一些鼠标和键盘事件的使用

在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDeriver 中,有一个专门的类来负责实现这些测试场景,那就是 Actions 类,在使用该类的过程中会配合使用到 Keys 枚举以及 Mouse. Keyboard.CompositeAction 等类. 其次,在实际测试过程中,可能会遇到某些按键没办法使用 Actions.Keys 等类来

Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)

本文将总结 Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍 WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展.举例说明扩展 Alt+PrtSc 组合键来截取当前活动窗口并将剪切板图像保存到文件. 概念 在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 WebDerive