Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考

//System.setProperty("webdriver.firefox.bin", "E:/firefox/firefox.exe");
//FirefoxDriver dr = new FirefoxDriver();

============ Selenium 2.0 WebDriver API  Demo ==========

    1. package example;
    2. import org.openqa.selenium.By;
    3. import org.openqa.selenium.WebDriver;
    4. import org.openqa.selenium.WebElement;
    5. import org.openqa.selenium.chrome.ChromeDriver;
    6. import org.openqa.selenium.support.ui.ExpectedCondition;
    7. import org.openqa.selenium.support.ui.WebDriverWait;
    8. import util.Log;
    9. import util.SeleniumUtil;
    10. public class TestAllInOne {
    11. public static final String BASE_URL = "http://www.baidu.com";
    12. public static void main(String[] args) throws Exception {
    13. System.setProperty("webdriver.chrome.driver", "E:/0down/selenium/chromedriver.exe");
    14. //打开firefox
    15. ChromeDriver dr = new ChromeDriver();
    16. //访问页面
    17. dr.get(BASE_URL);
    18. //      dr.navigate().to(BASE_URL);//与dr.get()效果相同
    19. //      dr.navigate().forward();//让浏览器前进一步
    20. //      dr.navigate().back();//让浏览器后退一步
    21. Log.Info(dr.getPageSource());
    22. //等待页面加载完毕,直到条件满足
    23. (new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>() {
    24. public Boolean apply(WebDriver dr) {
    25. Log.Info("web driver wait...");
    26. int index = dr.getPageSource().indexOf("京ICP证030173号");
    27. if(index != -1){
    28. Log.Info("web driver wait, true...");
    29. return true;
    30. }else{
    31. Log.Info("web driver wait, false...");
    32. return false;
    33. }
    34. }
    35. });
    36. //等待页面加载完毕,直到条件满足,一个while循环,也挺简单的吧
    37. /*
    38. while(true){
    39. Log.Info("wait for...");
    40. int index = dr.getPageSource().indexOf("京ICP证030173号");
    41. if(index != -1){
    42. Log.Info("wait for, true...");
    43. break;
    44. }
    45. Thread.sleep(1 * 1000);
    46. }*/
    47. //等待元素加载完成
    48. //      (new WebDriverWait(dr, 10)).until(
    49. //          ExpectedConditions.presenceOfElementLocated(By.id("kw"))
    50. //      );
    51. //等待元素加载完成,并可点击
    52. //      WebDriverWait wait = new WebDriverWait(dr, 10);
    53. //      wait.until(ExpectedConditions.elementToBeClickable(By.id("su")));
    54. //全局性的影响,只要WebDriver不消失,每隔10秒检查元素是否加载完成,直到加载完成。
    55. //      dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    56. //      dr.get("http://somedomain/url_that_delays_loading");
    57. //      dr.findElement(By.id("myDynamicElement"));
    58. //      WebElement we = dr.findElement(By.id("kw"));
    59. //      we.sendKeys("selenium");
    60. //      we.click();
    61. //      dr.findElement(By.id("元素id"));//最常用
    62. //      dr.findElement(By.className("class名称"));//比较常用
    63. //      dr.findElement(By.tagName("tag名称"));//比较常用
    64. //      dr.findElement(By.cssSelector("css选择器"));//比较常用
    65. //      dr.findElement(By.name("元素的name属性"));//比较常用
    66. //      dr.findElement(By.linkText("超链接的内容"));//不常用
    67. //      dr.findElement(By.partialLinkText("超链接的部分内容"));//不常用
    68. //      dr.findElement(By.xpath("xpath表达式"));//不常用
    69. //1:用java从文本中读取jQuery,并用WebDriver加载jQuery
    70. SeleniumUtil.LoadAndExecuteJQuery(dr);
    71. //2:用WebDriver执行你写的jQuery代码,可以返回单个元素,也可以返回元素数组,或无返回值
    72. //执行你的jQuery代码,既然能执行自已的jQuery代码,就能做任何事情了
    73. dr.executeScript("$('#kw').val('selenium'); $('#kw').val($('#kw').val() + ' java');");
    74. //也可以用WebDriver API进行页面元素的操作
    75. WebElement el = dr.findElement(By.id("kw"));
    76. el.sendKeys("selenium java");
    77. dr.findElement(By.id("su")).click();
    78. //WebDriver专用的select下接框处理类
    79. /*
    80. List<WebElement> elList = dr.findElements(By.tagName("select"));
    81. if(elList != null && elList.size() > 0){
    82. Select select = new Select(elList.get(0));
    83. select.deselectAll();
    84. select.selectByVisibleText("Edam");
    85. select.selectByIndex(1);
    86. select.selectByValue("10010");
    87. }*/
    88. //window和frame的切换
    89. /*
    90. dr.switchTo().window("xxName");
    91. dr.switchTo().frame("xxName");
    92. */
    93. //浏览器自带的alert弹出框的处理
    94. /*
    95. Alert alert = dr.switchTo().alert();
    96. if(alert != null){
    97. alert.accept();
    98. alert.dismiss();
    99. alert.sendKeys("collonn");
    100. }*/
    101. /*
    102. //用jQuery查找一个元素
    103. WebElement wea = (WebElement)dr.executeScript("return $('#kw').get(0);");
    104. //用jQuery查找一组元素
    105. List<WebElement> weaList = (List<WebElement>)dr.executeScript("return $('.stu_info').get();");
    106. //返回Boolean
    107. Boolean flagB = (Boolean)dr.executeScript("return true;");
    108. //返回Double
    109. Double flagD = (Double)dr.executeScript("return 12.12;");
    110. //返回Long
    111. Long flagL = (Long)dr.executeScript("return 123;");
    112. //返回String
    113. String flagS = (String)dr.executeScript("return 'collonn';");
    114. //返回String数组
    115. List<String> flagSs = (List<String>)dr.executeScript("var ary = ['a', 'b', 'c']; return ary;");
    116. */
    117. //保存网面截图
    118. SeleniumUtil.TakeScreenshot(dr, null);
    119. //关闭浏览器
    120. dr.quit();
    121. }
    122. }

Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考的更多相关文章

  1. 【译】Selenium 2.0 WebDriver

    Selenium WebDriver   注意:我们正致力于完善帮助指南的每一个章节,虽然这个章节仍然存在需要完善的地方,不过我们坚信当前你看到的帮助信息是精确无误的,后续我们会提供更多的指导信息来完 ...

  2. selenium webdriver自动化测试

    selenium家族介绍           Selenium IDE:Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能.   Selenium ...

  3. android用户界面详尽教程实例

    android用户界面详尽教程实例 1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.andr ...

  4. android用户界面的教程实例---转自qianqianlianmeng的博客

    1.android用户界面之AlarmManager教程实例汇总http://www.apkbus.com/android-48405-1-1.html2.android用户界面之文本编辑教程实例汇总 ...

  5. selenium2 Webdriver + Java 自动化测试实战和完全教程

    selenium2 Webdriver + Java 自动化测试实战和完全教程一.快速开始 博客分类: Selenium-webdriverselenium webdriver 学习selenium ...

  6. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  7. Python版:Selenium2.0之WebDriver学习总结_实例1

    Python版:Selenium2.0之WebDriver学习总结_实例1  快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 实属转载:本人看的原文地址 :http:/ ...

  8. Solr 4.0 部署实例教程

    Solr 4.0 部署实例教程 Solr 4.0的入门基础教程,先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为H ...

  9. Omnet++ 4.0 入门实例教程

    http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...

随机推荐

  1. git项目同时支持多个远端仓库

    git项目同时支持多个远端仓库 为了防止github被墙,最好在国内的托管商做一个备份,这就需要同时提交到多个远端仓库,例如一个open source项目同时要提交csdn和github,url分别是 ...

  2. Hauntbox:用于控制你的自己主动化、电子创意家居的开源硬件盒子

    Hauntbox 是一个开源硬件控制器,能够满足用随意传感器和控制器建立复杂的.自己主动化的萦绕在心头的电子项目. 它不须要焊接或者预先学什么知识.是全然可控制.并与Arduino插板兼容. 无需编程 ...

  3. android录音功能的实现

    这个录音实现是我在Bus上看到并下载的,他那个源码不完整,再次把我整理完整的代码贴出,源码地址在这:http://download.csdn.net/detail/chaozhung/5618649 ...

  4. 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...

  5. 利用Android属性动画实现Banner的原理与实践

    事实上在Android刚推出属性动画的时候.就想利用它来设计一个Banner控件,一直没什么时间尝试. 在当时看我们应用中的Banner,使用计时器来控制自己主动播放,设置一个非常大的数,利用余数原理 ...

  6. hdu 4687 带花树匹配

    其实吧,思路挺简单的,只不过昨天刚学,还有一些东西不太了解,然后就23333333... 吃晚饭回来就A了,我是有多傻啊,这么题都A不掉,不能忍啊... 我们可以先求出哪些边是可能存在于最大匹配中的, ...

  7. OpenStreetMap初探(一)——了解OpenStreetMap

    1. 開始关注OpenStreetMap始于此博文:<微软对抗谷歌的秘密武器:开源地图OpenStreetMap>  http://news.csdn.net/a/20120328/313 ...

  8. Coins (poj 1742 &amp;&amp; hdu 2844 DP)

    Language: Default Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 30047   Accepte ...

  9. css怎样使顶端悬浮导航栏不遮住下面一层页面内容

    在两个层之间加这个<span class="blank" style="height:20px;"></span>,其中高度可以自己设置 ...

  10. 让VC2012生成的程序支持XP系统(QT的DLL都是支持XP的,只与EXE有关)

    如果用的编译器是VC2012以上,那么默认生成出的程序是不能运行在XP系统上的.所以需要修改链接参数 我们要做的是修改qmake.conf文件中的参数,文件路径根据开发环境不同而不同下面以5.1.1 ...