WebDriver高级应用实例(4)
4.1操作web页面的滚动条
被测网页的网址:
http://v.sogou.com
Java语言版本的API实例代码
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod; import javax.swing.event.TreeWillExpandListener; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod; public class scrolling {
WebDriver driver;
String url ="http://v.sogou.com";
//priority = 1 表示测试用例的第一优先级
@Test(priority = 1)
public void scrollingToBottomofAPage() {
//将页面滚动至页面最下方
((JavascriptExecutor)driver).executeScript("window.scrollTo(0,document.body.scrollHeight)");
//设置3秒停顿验证滚动条是否移动至指定位置
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test(priority = 2)
public void scrollingToElementofAPage(){
//找到标签文字为电视剧的标签
WebElement element = driver.findElement(By.xpath("//*[@id='container']//a[text()='电视剧']"));
//使用scrollIntView()函数。将滚动条移至元素所在的位置
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();",element);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Test(priority = 3)
public void scrollingByCoordinatesofAPage(){
//将页面滚动条向下移动800个像素
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,800)");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@BeforeMethod
public void beforeMethod() {
System.setProperty("webdriver.chrome.driver", "D:\\WebDriver\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
//最大化
driver.manage().window().maximize();
driver.get(url);
} @AfterMethod
public void afterMethod() {
driver.quit();
} }
4.2Robot对象操作键盘
被测网页的网址:
http://www.sogou.com
Java语言版本的API实例代码
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod; import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.AfterMethod; public class testRoboot {
WebDriver driver;
String url ="http://www.sogou.com";
@Test
public void testRobootOperateKeyBoard() throws InterruptedException {
//设置显示等待10秒
WebDriverWait wait = new WebDriverWait(driver, 10);
//使用显示等待判断页面是否存在搜索框
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.id("query")));
//使用ctrl+v将seleium复制到搜索框中
setAndctrlVClipboardData("seleium");
//使用封装的方法 按下tab键将焦点移至搜索按钮
pressTabKey();
//调用封装的方法按下enter搜索
pressEnterKey();
//等待3秒查看是否执行
Thread.sleep(3000);
}
public void pressEnterKey() {
//声明Robot对象
Robot robot = null;
try {
//生成Robot对象
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
//调用KeyPress()方法实现按下Enter键
robot.keyPress(KeyEvent.VK_ENTER);
//调用keyRelease()方法实现释放Enter键
robot.keyRelease(KeyEvent.VK_ENTER);
}
public void pressTabKey() {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
}
public void setAndctrlVClipboardData(String string) {
//声明StringSelection对象并使函数的string实例化
StringSelection stringSelection = new StringSelection(string);
//使用toolkit对象的setContens方法将字符串放入将字符串放入剪切板中
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e1) {
e1.printStackTrace();
}
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
}
@BeforeMethod
public void beforeMethod() {
System.setProperty("webdriver.chrome.driver", "D:\\WebDriver\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);
} @AfterMethod
public void afterMethod() {
driver.quit();
}
}
WebDriver高级应用实例(4)的更多相关文章
- WebDriver高级应用实例(10)
		
10.1控制HTML5语言实现的视频播放器 目的:能够获取html5语言实现的视频播放器视频文件的地址.时长.控制进行播放暂停 被测网页的网址: http://www.w3school.com.cn/ ...
 - WebDriver高级应用实例(9)
		
9.1封装操作表格的公用类 目的:能够使自己编写操作表格的公用类,并基于公用类进行表格中的元素的各类操作 被测网页的网址的HTML代码: <html> <body> <t ...
 - WebDriver高级应用实例(8)
		
8.1使用Log4j在测试过程中打印日志 目的:在测试过程中,使用Log4j打印日志,用于监控和后续调试测试脚本 被测网页的网址: http://www.baidu.com 环境准备: (1)访问ht ...
 - WebDriver高级应用实例(7)
		
7.1在测试中断言失败的步骤进行屏幕截图 目的:在测试过程中,在断言语句执行失败时,对当前的浏览器进行截屏,并在磁盘上新建一个yyyy-mm-dd格式的目录,并在断言失败时新建一个已hh-mm-ss格 ...
 - WebDriver高级应用实例(6)
		
6.1精确比较网页截图图片 目的:对于核心界面进行截屏,并且使用测试过程中的截图和以前测试过程中的截图进行比较.确认页面是否发生了改变 被测网页的网址: http://www.baidu.com Ja ...
 - WebDriver高级应用实例(5)
		
5.1对象库(UI Map) 目的:能够使用配置文件存储被测试页面上的元素的定位方式和定位表达式,做到定位数据和程序的分离.方便不具备编码能力的测试人员进行修改和配置. 被测网页的网址: http:/ ...
 - WebDriver高级应用实例(3)
		
3.1自动化下载某个文件 被测网页的网址: https://pypi.org/project/selenium/#files Java语言版本的API实例代码 import java.util.Has ...
 - WebDriver高级应用实例(2)
		
2.1在日期选择器上进行日期选择 被测网页的网址: https://www.html5tricks.com/demo/Kalendae/index.html Java语言版本的API实例代码 impo ...
 - WebDriver高级应用实例(1)
		
1.1使用JavaScriptExecutor单击元素 被测网页的网址: http://www.baidu.com Java语言版本的API实例代码 import org.testng.annotat ...
 
随机推荐
- 2019.02.09 bzoj1042: [HAOI2008]硬币购物(完全背包+容斥原理)
			
传送门 题意简述:有四种面值的硬币,现在qqq次询问(q≤1000)(q\le1000)(q≤1000),每次给出四种硬币的使用上限问最后刚好凑出sss块钱的方案数(s≤100000)(s\le100 ...
 - 通过html文件生成PDF文件
			
/// <summary> /// 获取html内容,转成PDF(注册) /// </summary> public void DownloadPDFByHTML(string ...
 - tomat修改启动路径
			
https://blog.csdn.net/axela30w/article/details/76546735
 - Pappus一阶矩公式
 - 比较jquery中的after(),append(),appendTo()方法
			
html页面: <p id="myp1">我的兴趣爱好是:</p> <button id="b1">after函数</ ...
 - 开源javacsv读取csv文件
			
一.下载地址:https://sourceforge.net/projects/javacsv/ 读取示例: public static void main(String[] args) { // 1 ...
 - 20155205 2016-2017-2 《Java程序设计》第10周学习总结
			
20155205 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 计算机网络基础 什么是网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数 ...
 - windows下解决numpy, scipy等库安装失败的方法
			
如果pip安装scipy库失败,可以参考以下方法: scipy官方上提供了这样的方法: Windows packages Windows does not have any package manag ...
 - Fortran编译器之一GUN Fortran安装(Windows XP)
			
最近研究GIS算法,需要用到Fortran语言.在网上找了一下发现一个开源的软件GUN Fortran编译器.当然既然是编译器,就是编译出程序的,但是编辑器不包括在内.编辑器可以用Text记事本,或者 ...
 - day35(servlet 3.0)
			
servlet3.0的问题 Servlet3.0与Servlet2.5提供了三个新特性: * 注解开发 :方便 * 文件上传 :有些API不是特别全. * 异步请求 :多线程的实现 注解开 ...