Selenium超简单入门
来源:互联网 发布:根域名 cname www 编辑:程序博客网 时间:2024/06/09 16:52
一、它可以做什么
小时候玩网游时,接触过一款名为“按键精灵”的软件,可以用它先录好一些点击事情,例如让游戏人物在原地转圈,发招打怪等,之后自己就可以不用重复点鼠标,按键精灵能帮我们反复执行动作。selenium的作用,与之类似,他是一款自动化工具,是网页自动化测试、网页数据爬虫的利器。
二、一个最简单的例子
1、获取依赖包
获取selenium-server-standalone-2.25.0.jar并引入到项目中
https://code.google.com/p/selenium/downloads/detail?name=selenium-server-standalone-2.25.0.jar&can=2&q=label%3AFeatured
获取chrome浏览器内核driver程序chromedriver.exe,并放到D:/WebDriver/
https://code.google.com/p/chromedriver/downloads/detail?name=chromedriver2_win32_0.8.zip&can=2&q=
2、例子程序(配好依赖包,可直接用哦)
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;/** * 这段程序演示了:借助 selenium,启动 chrome浏览器,并登录QQ邮箱的过程 * * @author lizeyang * */public class SeleniumUtil{ // 浏览器程序的路径 private String webBrowserPath = ""; private WebDriver driver = null; private String loginUrl = "https://mail.qq.com/cgi-bin/loginpage" ;// QQ邮箱的登录页 private String username = "10000"; // QQ帐号 private String password = "helloworld"; // QQ密码 // 初始化 selenium要调用的浏览器并启动 public void init() { webBrowserPath = "D:/WebDriver/chromedriver.exe" ; System. setProperty( "webdriver.chrome.driver", webBrowserPath ); driver = new ChromeDriver(); } // 关闭浏览器 public void quitDrvier() { if ( null != driver) { driver .quit(); } } public void waitForSecond() { try { Thread. sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } // 模拟登录过程 public void login() { driver .get(loginUrl ); // 进入QQ登录页 WebElement element = driver .findElement(By.id( "uin" ));// 找到id名为 uin的dom 元素 element.sendKeys( username );// 当前element为 uin输入框,将用户名填到这个输入框 waitForSecond(); // 让进程等待一会,避免偶尔出现的元素获取异常 element = driver .findElement(By.id( "p" ));// 找到id名为p的 dom元素 element.sendKeys( password );// 将密码填入 waitForSecond(); element = driver .findElement(By.id( "btlogin" ));// 找到登录按钮 waitForSecond(); element.click(); // 点击登录按钮 } public void demo() { init(); login(); // quitDrvier(); } public static void main(String[] args) { SeleniumUtil util = new SeleniumUtil(); util.demo(); }}
你可以直接将这段代码copy到你新建的工程中并运行,你看到的效果是:程序自动地启动了一个浏览器,来到QQ邮箱登录页,帐号密码被自动填充到相应输入框,登录到邮箱中
三、页面元素的捕获
使用selenium过程中,一个重要过程,就是对页面元素进行获取,之后才能对这个页面元素做相应操作。因此,这里对页面元素的捕获做一个补充说明。
如例子程序中所示,获取页面元素的基本方法是driver .findElement().你可以给findElement()传入多个参数,表示不同的页面元素寻找方法.例如通过查找页面元素的id是通过By.id这个名字。
更多的方法如下图所示:
这里特别推荐xpath的方式,Xpath的能力非常强大,基本上所有的元素都能拿到。例如,就算页面元素既没有id号,又没有唯一的class名称,它的父节点是一个div,拥有class名为paginatorBatchSizes,而它自己本身是一个span元素,那么By.xpath("//div[@class='paginatorBatchSizes']/span")就能拿到这个元素。总而言之,Xpath的能力,还有更多的想象空间,但它具体还有哪些能力,这里就不展开了,可以到Xpath常见用法做进一步了解
- Selenium超简单入门
- Selenium超简单入门
- selenium 简单入门
- Hibernate超简单入门
- Ant超简单入门
- fit超简单入门
- GDB超简单入门
- OpenJPA超简单入门
- 超简单git入门
- construct2超简单入门
- selenium rc入门以及简单示例
- struts超简单入门(-)
- struts超简单入门(二)
- struts超简单入门(三)
- struts超简单入门(四)
- 超简单Spring入门(一)Dependency Injection
- 超简单Spring入门 (三) Template
- 入门超简单python入门神图
- caret包处理流程
- adb 常用命令
- Dialog学习实例
- offsetof函数的应用
- [C++]以不同用户身份运行程序
- Selenium超简单入门
- QT父子与QT对象delete
- 重学Android 之路之一 APK签名
- 程序员薪水最高的25家公司 Juniper超Google位列第一
- 照片库和照相机
- 微软面试试题
- OCP考试之后的感受
- ACM Steps_Chapter Two_Section2
- 【转载】谱聚类(spectral clustering)