实时调试WebDriver代码
来源:互联网 发布:mac优酷 编辑:程序博客网 时间:2024/06/10 09:29
简介:我们在做web自动化测试的时候,每次检查一些新的操作或者定位一个元素的代码是否起作用时,都要运行一遍代码重启一个浏览器,再跳到相应的操作页面,这样的调试很费时间。现在有个测试前辈写了个工具可以让我们的调试方便一些(参考:https://testerhome.com/topics/9460)。我现在调试就用这个工具,挺好用的,所以总结一下使用过程。
添加jar包
1、jar包地址:http://download.csdn.net/download/galen2016/10034198
2、把jar包添加到构建路径(我用的eclipse)
MteSenseWdadTest.java
1、MteSenseWdadTest.java:这就调用并实时执行测试方法的类
public class MteSenseWdadTest { ChromeDriver driver; @BeforeMethod public void setUp() throws Exception { System.setProperty("webdriver.chrome.driver", "resource/chromedriver.exe"); DesiredCapabilities capabilities = DesiredCapabilities.chrome(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); driver = new ChromeDriver(capabilities); driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS); driver.manage().window().maximize(); } @Test public void testMain() throws Exception { MteSenseLoader loader = new MteSenseLoader(); loader.senseLoader("chrome","src/com/kdzwy/cases/TestCase.java", "com.kdzwy.cases.TestCase", null, "case2", driver); } @AfterMethod public void tearDown() throws Exception { driver.quit(); }}
2、代码解释:
(1)这里用了testng框架,setUp()方法里实例化了一个ChromeDriver,并且初始化了ChromeDriver的一些配置
(2)testMain()方法里主要看这句
loader.senseLoader("chrome","src/com/kdzwy/cases/TestCase.java", "com.kdzwy.cases.TestCase", null, "case2", driver);
第一个参数:rivertype,支持这六个关键字 chrome, firefox, safari, ios, android。
第一个参数:用来调试的java文件的路径。参考我的项目目录如下:
第三个参数:用来调试的java文件的类名。
第四个参数:需要预先打开的网址, 不需要可以传入 null。
第五个参数:用来调试的java文件的方法名字。
第六个参数:setUp方法里创建的那个ChromeDriver。
3、测试用例的代码如下:
TestCase.java
package com.kdzwy.cases;import org.openqa.selenium.chrome.ChromeDriver;/* *包名:com.kdzwy.cases *作者:Adien_cui *时间:2017-7-28 上午9:17:50 *描述: **/public class TestCase { public static void case1(ChromeDriver driver) { driver.get("http://wwww.baidu.com"); driver.findElementById("kw").clear(); driver.findElementById("kw").sendKeys("testng"); driver.findElementById("su").click();// } public static void case2(ChromeDriver driver) { driver.get("http://wwww.baidu.com"); driver.findElementById("kw").clear(); driver.findElementById("kw").sendKeys("what are you talking about?"); driver.findElementById("su").click();// }}
使用方法
1、运行MteSenseWdadTest.java,我用的是Testng框架,所以run as -testng test(如果是用的junit框架就用junit来运行)
2、首先会运行sepUp()方法,然后运行testMain()方法,这时就会调用TestCase.java里的case2方法了
3、然后我们就可以实时调试case2里的方法了,比如把这句:
driver.findElementById("kw").sendKeys("what are you talking about?");
改成:
driver.findElementById("kw").sendKeys("WTF");
然后,ctrl+s保存,之前打开浏览器就会重新运行一遍case2()方法里的代码,这样就实现了实时调试的功能。
4、最后要注意,case2(ChromeDriver driver)方法要传入ChromeDriver 参数,这个driver就是MteSenseWdadTest .java里实例化的那个
5、运行的日志如下:
- 实时调试WebDriver代码
- Selenium-webdriver(JAVA)代码总结
- C#.Net组件开发 - 使用Attach to Process实时调试设计器代码
- 介绍下emacs+gdb调试环境,可以实时跟踪代码执行位置,提高工作效率
- webDriver
- webdriver
- WebDriver
- Webdriver
- JSCover+WebDriver/Selenium获取JS代码覆盖率
- 拆分的Webdriver智能等待代码
- Selenium2(WebDriver)中执行JavaScript代码
- 实时预览代码
- struts2实时更新代码
- 字体实时变化代码
- sphinx实时搜索代码
- 关闭visual studio实时调试
- 关闭VS实时调试器
- 关闭VS实时调试器
- 树莓派设置固定IP
- 图像二值化
- 【LeetCode】72.Edit Distance解题报告
- Arrays用法整理
- 怎么在VirtualBox上装电脑公司的win7系统
- 实时调试WebDriver代码
- 小朋友学C语言(15):“变量==常量”与“常量==变量”的区别
- week_5_ Integer to Roman
- 完整代码示例
- Error: Could not link: /usr/local/share/doc/homebrew
- nginx安装配置
- spring data jpa 自定义接口实现
- 小朋友学C语言(16):斐波那契数列的非递归实现
- 小朋友学C语言(17):斐波那契数列的递归实现