Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考
Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考
//System.setProperty("webdriver.firefox.bin", "E:/firefox/firefox.exe");
//FirefoxDriver dr = new FirefoxDriver();
============ Selenium 2.0 WebDriver API Demo ==========
- package example;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.chrome.ChromeDriver;
- import org.openqa.selenium.support.ui.ExpectedCondition;
- import org.openqa.selenium.support.ui.WebDriverWait;
- import util.Log;
- import util.SeleniumUtil;
- public class TestAllInOne {
- public static final String BASE_URL = "http://www.baidu.com";
- public static void main(String[] args) throws Exception {
- System.setProperty("webdriver.chrome.driver", "E:/0down/selenium/chromedriver.exe");
- //打开firefox
- ChromeDriver dr = new ChromeDriver();
- //访问页面
- dr.get(BASE_URL);
- // dr.navigate().to(BASE_URL);//与dr.get()效果相同
- // dr.navigate().forward();//让浏览器前进一步
- // dr.navigate().back();//让浏览器后退一步
- Log.Info(dr.getPageSource());
- //等待页面加载完毕,直到条件满足
- (new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>() {
- public Boolean apply(WebDriver dr) {
- Log.Info("web driver wait...");
- int index = dr.getPageSource().indexOf("京ICP证030173号");
- if(index != -1){
- Log.Info("web driver wait, true...");
- return true;
- }else{
- Log.Info("web driver wait, false...");
- return false;
- }
- }
- });
- //等待页面加载完毕,直到条件满足,一个while循环,也挺简单的吧
- /*
- while(true){
- Log.Info("wait for...");
- int index = dr.getPageSource().indexOf("京ICP证030173号");
- if(index != -1){
- Log.Info("wait for, true...");
- break;
- }
- Thread.sleep(1 * 1000);
- }*/
- //等待元素加载完成
- // (new WebDriverWait(dr, 10)).until(
- // ExpectedConditions.presenceOfElementLocated(By.id("kw"))
- // );
- //等待元素加载完成,并可点击
- // WebDriverWait wait = new WebDriverWait(dr, 10);
- // wait.until(ExpectedConditions.elementToBeClickable(By.id("su")));
- //全局性的影响,只要WebDriver不消失,每隔10秒检查元素是否加载完成,直到加载完成。
- // dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
- // dr.get("http://somedomain/url_that_delays_loading");
- // dr.findElement(By.id("myDynamicElement"));
- // WebElement we = dr.findElement(By.id("kw"));
- // we.sendKeys("selenium");
- // we.click();
- // dr.findElement(By.id("元素id"));//最常用
- // dr.findElement(By.className("class名称"));//比较常用
- // dr.findElement(By.tagName("tag名称"));//比较常用
- // dr.findElement(By.cssSelector("css选择器"));//比较常用
- // dr.findElement(By.name("元素的name属性"));//比较常用
- // dr.findElement(By.linkText("超链接的内容"));//不常用
- // dr.findElement(By.partialLinkText("超链接的部分内容"));//不常用
- // dr.findElement(By.xpath("xpath表达式"));//不常用
- //1:用java从文本中读取jQuery,并用WebDriver加载jQuery
- SeleniumUtil.LoadAndExecuteJQuery(dr);
- //2:用WebDriver执行你写的jQuery代码,可以返回单个元素,也可以返回元素数组,或无返回值
- //执行你的jQuery代码,既然能执行自已的jQuery代码,就能做任何事情了
- dr.executeScript("$('#kw').val('selenium'); $('#kw').val($('#kw').val() + ' java');");
- //也可以用WebDriver API进行页面元素的操作
- WebElement el = dr.findElement(By.id("kw"));
- el.sendKeys("selenium java");
- dr.findElement(By.id("su")).click();
- //WebDriver专用的select下接框处理类
- /*
- List<WebElement> elList = dr.findElements(By.tagName("select"));
- if(elList != null && elList.size() > 0){
- Select select = new Select(elList.get(0));
- select.deselectAll();
- select.selectByVisibleText("Edam");
- select.selectByIndex(1);
- select.selectByValue("10010");
- }*/
- //window和frame的切换
- /*
- dr.switchTo().window("xxName");
- dr.switchTo().frame("xxName");
- */
- //浏览器自带的alert弹出框的处理
- /*
- Alert alert = dr.switchTo().alert();
- if(alert != null){
- alert.accept();
- alert.dismiss();
- alert.sendKeys("collonn");
- }*/
- /*
- //用jQuery查找一个元素
- WebElement wea = (WebElement)dr.executeScript("return $('#kw').get(0);");
- //用jQuery查找一组元素
- List<WebElement> weaList = (List<WebElement>)dr.executeScript("return $('.stu_info').get();");
- //返回Boolean
- Boolean flagB = (Boolean)dr.executeScript("return true;");
- //返回Double
- Double flagD = (Double)dr.executeScript("return 12.12;");
- //返回Long
- Long flagL = (Long)dr.executeScript("return 123;");
- //返回String
- String flagS = (String)dr.executeScript("return 'collonn';");
- //返回String数组
- List<String> flagSs = (List<String>)dr.executeScript("var ary = ['a', 'b', 'c']; return ary;");
- */
- //保存网面截图
- SeleniumUtil.TakeScreenshot(dr, null);
- //关闭浏览器
- dr.quit();
- }
- }
Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考的更多相关文章
- 【译】Selenium 2.0 WebDriver
Selenium WebDriver 注意:我们正致力于完善帮助指南的每一个章节,虽然这个章节仍然存在需要完善的地方,不过我们坚信当前你看到的帮助信息是精确无误的,后续我们会提供更多的指导信息来完 ...
- selenium webdriver自动化测试
selenium家族介绍 Selenium IDE:Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能. Selenium ...
- android用户界面详尽教程实例
android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...
- android用户界面的教程实例---转自qianqianlianmeng的博客
1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.android用户界面之文本编辑教程实例汇总 ...
- selenium2 Webdriver + Java 自动化测试实战和完全教程
selenium2 Webdriver + Java 自动化测试实战和完全教程一.快速开始 博客分类: Selenium-webdriverselenium webdriver 学习selenium ...
- 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)
菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...
- Python版:Selenium2.0之WebDriver学习总结_实例1
Python版:Selenium2.0之WebDriver学习总结_实例1 快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 实属转载:本人看的原文地址 :http:/ ...
- Solr 4.0 部署实例教程
Solr 4.0 部署实例教程 Solr 4.0的入门基础教程,先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为H ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
随机推荐
- CEGUI 输入法窗口实现
游戏中经常要输入汉字,但当我们游戏没有自己实现输入法窗口时,windows会使用用户安装的输入法,但这个输入法窗口只会显示在游戏窗口外头,而且当我们游戏全屏时(真全屏,不是那种窗口式的假全屏),屏幕上 ...
- android 按字母搜索
在看Oplayer的时候看见滑动字母来实现listView的内容搜索,所以就把里面的核心的函数扣除来做了一个demo,分为两部分一个是布局,另一个就是代码了,具体的如下: 布局: <?xml v ...
- Android Gradle Plugin指南(六)——高级构建定制
原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Advanced-Build-Customization ...
- Ansi,UTF8,Unicode,ASCII编码的差别
近日须要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了,以下全是从网上搜来的: 1. ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内 ...
- HDU1257 最小拦截系统 【贪婪】
最小拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- Swift - 添加、修改、删除通讯录联系人
使用AddressBook.framework框架,我们除了可以很方便的获取通信录里的联系人.同时,还能对通讯录进行新增.修改.删除联系人操作. (注意:这些操作同查询一样,首先需要发起授权请求) 1 ...
- 算法-最长子序列和C/C++实现(三个复杂度)
最长子序列和的问题非常easy: 就是一个数组,求出当中当中连续的某一段和,而这一段和是全部的连续段和的最大的值.求出这个值. 先说复杂度最高的:O(n3) 直接上代码,非常easy的: // // ...
- linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区
linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区 http://blog.csdn.net/orzor ...
- Kendo UI开发教程(27): 移动应用开发简介
Kendo UI 支持开发Web应用,前面介绍的SPA,也支持开发移动应用,至于使用 HTML5 + JavaScript + CSS开发移动是不是一个好的选择不在本文的讨论之中.Kendo UI M ...
- Android自学绝佳资料
本文转自stormzhang老师的博客:http://stormzhang.com/android/2014/07/07/learn-android-from-rookie 首先感谢stromzhan ...