判断页面元素是否存在

  测试网址

  http://www.baidu.com

  Java语言版本API实例 

  @Test
  public void testIsElementPresent(){
    driver.manage().window().maximize();
    driver.get(url);
    if(IsElementPresent(By.id("kw"))){
    WebElement searchInputBox = driver.findElement(By.id("kw"));
      if(searchInputBox.isEnabled() == true){
        searchInputBox.sendKeys("百度首页搜索框成功找到");
       }
    }
    else{
      Assert.fail("未找到页面元素");
      }
    }
    private boolean IsElementPresent(By by) {
    try {
      //判断传入的参数是否找到页面元素,找到则返回true
      driver.findElement(by);
      return true;
      } catch (NoSuchElementException e) {
        return false;
    }
  }

  使用title属性识别和操作弹出的浏览器窗口

  测试页面代码 

  <html>
    <head>
      <title>你喜欢的水果</title>
    </head>
  <body>
    <p id='p1'>你爱吃的水果么?</P>
    <br><br>
    <a href="http://www.baidu.com" target="_blank">百度搜索</a>
  </body>
  </html>

  http://www.baidu.com

  Java语言版本API实例 

  @Test
  public void identifyPopUpWindowByTitle() {
    driver.manage().window().maximize();
    driver.get(url);
    //获取当前窗口句柄
    String parentWindowHandle = driver.getWindowHandle();
    WebElement baiduLink = driver.findElement(By.xpath("//a"));
    baiduLink.click();
    //定义一个set容器存储所有的窗口句柄
    Set<String> allWindowsHandles = driver.getWindowHandles();
    //如果存储容器对象不为空则进行遍历
    if(!allWindowsHandles.isEmpty()){
    for(String windowHandle:allWindowsHandles){
  try {
    //通过窗口的浏览器名称判断是否为百度
    if(driver.switchTo().window(windowHandle).getTitle().equals("百度一下,你就知道"))
    driver.findElement(By.id("kw")).sendKeys("百度的浏览器窗口被找到");
    } catch (NoSuchWindowException e) {
    e.printStackTrace();
      }
    }
  }
    //返回最早打开的窗口
    driver.switchTo().window(parentWindowHandle);
    //通过标题断言判断是否为之前窗口
    Assert.assertEquals(driver.getTitle(), "你喜欢的水果");
  }

  使用页面的文字内容识别和处理新弹出的浏览器窗口

  测试页面代码 

  <html>
    <head>
      <title>你喜欢的水果</title>
    </head>
  <body>
    <p id='p1'>你爱吃的水果么?</P>
    <br><br>
    <a href="http://www.baidu.com" target="_blank">百度搜索</a>
  </body>
  </html>

  Java语言版本API实例 

  @Test
  public void identifyPopUpWindowByPageSource() {
    String parentWindowHandle = driver.getWindowHandle();
    driver.get(url);
    WebElement baiduLink = driver.findElement(By.xpath("//a"));
    baiduLink.click();
    Set<String> allWindowHandles = driver.getWindowHandles();
    if(!allWindowHandles.isEmpty()){
      for(String windowHandle:allWindowHandles){
    try {

      //判断页面源码中是否包含百度一下4字
      if(driver.switchTo().window(windowHandle).getPageSource().contains("百度一下"))
      driver.findElement(By.id("kw")).sendKeys("找到百度浏览器窗口");
    } catch (NoSuchWindowException e) {
      e.printStackTrace();
      }
    }
  }

    //返回之前的浏览器窗口
    driver.switchTo().window(parentWindowHandle);
    Assert.assertEquals(driver.getTitle(), "你喜欢的水果");
  }

WebDriverAPI(8)的更多相关文章

  1. WebDriverAPI(7)

      查看页面元素的属性 测试网址 http://www.baidu.com Java语言版本API实例 @Test public void getWebElementAttribute() { dri ...

  2. WebDriverAPI(10)

    操作Frame页面元素 测试网址代码 frameset.html: <html> <head> <title>frameset页面</title> &l ...

  3. WebDriverAPI(9)

    操作JavaScript的Alert窗口 测试网址代码 <html> <head> <title>你喜欢的水果</title> </head> ...

  4. WebDriverAPI(4)

    单击某个元素 采用元素id.click()方法即可 双击某个元素id.doubleClick 操作单选下拉列表 测试网页HTML代码 <html> <body> <sel ...

  5. WebDriverAPI(2)

    操作浏览器窗口 被测网址http:http://www.baidu.com Java语言版本的API实例代码 String url = "http://www.baidu.com" ...

  6. WebDriverAPI(6)

    在指定元素上方进行鼠标悬浮 测试网址 http://www.baidu.com Java语言版本实例 @Test public void roverOnElement() { driver.manag ...

  7. WebDriverAPI(5)

    将当前浏览器截屏 测试网址 http://www.baidu.com Java语言版本实例 @Test public void captureScreenInCurrentWindows() { dr ...

  8. WebDriverAPI(3)

    获取页面的Title属性 被测网址http:http://www.baidu.com Java语言版本的API实例代码 String url = "http://www.baidu.com& ...

  9. WebDriverAPI(1)

    访问某网页地址 被测网址http:http://www.baidu.com Java语言版本的API实例代码 方法一: @Test public void visitURL(){ String bas ...

随机推荐

  1. 24. Indoor Air pollution 室内空气污染

    . Indoor Air pollution 室内空气污染 ① Priscilla Ouchida's "energy-efficient"house turned out to ...

  2. spring3 hibernate4整合后无法查询数据库

    spring3和hibernate4整合后无法查询数据库,一方面是因为已经spring3中没有对hibernate4 HibernateTemplate的支持,另外一个就是需要在hibernate的配 ...

  3. CentOS7下安装配置Nginx

    一:安装依赖项 1.pcre:2.openssl:3.zlib:4.gcc:可直接通过yum安装 二:创建nginx账户(可以配置nginx.conf的user为此账户) useradd nginx ...

  4. 一)如何开始 ehcache ?

    官网地址 http://www.ehcache.org/ 从哪开始 第一步优先下载 http://www.ehcache.org/downloads/ 下载 Ehcache 2.10.0 .tar.g ...

  5. 理解Nodejs的Event Loop

    Node的“event loop”主要是用来处理高输出量的.这很神奇,这也是为什么node可以在单线程的情况下同时处理很多的后台操作.本文就会集中讲述event loop是怎么运行的,这样你可以可以使 ...

  6. HDU1254 推箱子(BFS) 2016-07-24 14:24 86人阅读 评论(0) 收藏

    推箱子 Problem Description 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推 ...

  7. hdu 4957 贪心破木桶接水大trick

    http://acm.hdu.edu.cn/showproblem.php?pid=4957 拿n只破的木桶去接水,每只木桶漏水速度为a[i],最后要得到b[i]单位的水,自来水的出水速度为V,木桶里 ...

  8. spring集成struts2

    Struts2前身是WebWork,核心并没有改变,其实就是把WebWork改名为struts2,与Struts1一点关系没有. Struts2中通过ObjectFactory接口实现创建及获取Act ...

  9. 使用for in循环遍历json对象的数据

    使用for in遍历json对象数据,如果数据中的名称有为数字的话,只对正整数有效,那么先会输出为正整数的数据,后面其他的会按照原来数据中定义的顺序不变输出. 针对名称为数字的json对象数据进行测试 ...

  10. Python学习-31.Python中集合的一些操作

    add方法: s = {1,2,3} s.add(4) print(s)# {1, 2, 3, 4} 同list的append方法,若调用s.add(3),则不会有任何影响.这点与C#中的HashSe ...