判断页面元素是否存在

  测试网址

  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. phoenix错误

    spark集群与phoenix进行数据请求时报错: 2018-06-15 17:13:30,158 INFO - Starting task 15.3 in stage 116.0 (TID 6832 ...

  2. vi 基本使用命令

    说明:以下的例子中 xxx 表示在命令模式下输入 xxx 并回车以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车小括号中的命令表示相关命令在编辑模式或可视模式下输入的命令会另外注明 1 查 ...

  3. HDU 1106 排序 (排序+处理字符串)

    题意:略. 析:按照题目说的,把字符串分割,然后把字符串转成十进制,存起来,可以用数组,我用的向量, 排序一下就OK了.注意的是,要考虑多个5相邻的时候,刚开始没考虑WA了一次. 代码如下: #inc ...

  4. 判断tableVIew滑动的方向

    首先设置一个旧的偏移量为0; self.oldContent = 0; - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scr ...

  5. Andfix热修复原理

    一.前言 最近腾讯弄出一个Tinker热修复框架,那么本文先不介绍这个框架,先来介绍一下阿里的一个热修复框架AndFix,这个框架出来已经很长时间了,但是看网上没有太多非常详细的讲解,这里就来做一次分 ...

  6. iOS 5 故事板进阶(2)

    让我们回到游戏排行窗口Ranking.创建一个 UITableViewController子类,命名为 RankingViewController. 编辑 RankingViewController. ...

  7. plsql高版本无法设置Fixedsys字体解决办法(win7&winXP适用)

    http://hi.baidu.com/crsky2008/item/c174c9fb52577919e3e3bd6b 设置如下:Tools->Preferences->Oracle-&g ...

  8. memcached分布式缓存系统

    在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活.此时 ...

  9. StructureMap依赖注入

    IOC:控制反转,是一种设计模式.一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制:第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系.他们的依赖关系 ...

  10. Jersey构建Restful风格的Webserivces(三)

    一.总体说明 通过jersey-client接口,创建客户端程序,来调用Jersey实现的RESTful服务,实现增.删.改.查等操作. 服务端主要是通过内存的方式,来模拟用户的增加.删除.修改.查询 ...