查看页面元素的属性

  测试网址

  http://www.baidu.com

  Java语言版本API实例 

  @Test
  public void getWebElementAttribute() {
    driver.manage().window().maximize();
    driver.navigate().to(url);
    String inptString = "seleium测试内容";
    WebElement input = driver.findElement(By.id("kw"));
    input.sendKeys(inptString);
    //取输入框中的值
    String inputText = input.getAttribute("value");
    Assert.assertEquals(inputText, "seleium测试内容");
  }

  获取页面元素的Css值

  测试网址

  http://www.baidu.com

  Java语言版本API实例 

  @Test
  public void getElenmentCssValue() {
    driver.manage().window().maximize();
    driver.get(url);
    WebElement input = driver.findElement(By.id("kw"));
    //获取元素宽度
    String inputwidth = input.getCssValue("width");
    //断言判断
    Assert.assertEquals("500px", inputwidth);
  }

  隐式等待

  测试网址

  http://www.baidu.com

  Java语言版本API实例 

  @Test
  public void testImplictWait() {
    driver.manage().window().maximize();
    driver.navigate().to(url);
    /*使用implicitlyWait方法设定查找页面元素的等待时间,调用findElement方法时没有立刻找到
    * 定位元素会等待设定的等待时长10秒,如果还没找到则抛出NoSuchElementException
    * */
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    try {
      WebElement seartchInputBox = driver.findElement(By.id("kw"));
      WebElement seartchButton = driver.findElement(By.id("su"));
      seartchInputBox.sendKeys("找到搜索框元素");
      seartchButton.click();
    } catch (NoSuchElementException e) {
      Assert.fail("没有找到搜索框");
      e.printStackTrace();
    }
  }

  显示等待

       

  

等待条件 WebDriver方法
页面元素是否在在页面上可用(enabled)和可被单击 elementToBeClickable(By locator)
页面元素处于被选中状态 elementToBeSelected(WebElement element)
页面元素在页面中存在 presenceOfElementLocated(By locator)
在页面元素中是否包含特定的文本 textToBePresentInElement(By locator)
页面元素值 textToBePresentInElementValue(By locator,java.lang.String text)
标题(title) titleContains(java.lang.String title)

  测试HTML代码

  <html>
    <title>你喜欢的水果</title>
    <body>
      <p>请选择你爱吃的水果</p>
      <br>
      <select name='fruit'>
        <option id='peach' value='taozi'>桃子</option>
        <option id='watermelon' value='xigua'>西瓜</option>
      </select>
      <br>
      <input type='checkbox'>是否喜欢吃水果?</input>
      <br><br>
      <input type="text" id="text" value="今年夏天西瓜相当甜">文本框</input>
    </body>
  </html>

  Java语言版本API实例 

  @Test
  public void testExplicitWait() {
    driver.manage().window().maximize();
    driver.get(url);
    //声明一个WebDriverWait对象,设定触发条件的最长等待时间为10秒
    WebDriverWait wait = new WebDriverWait(driver,10);
    //调用ExpectedConditions的titleContains方法判断标题中是否包含水果两字
    wait.until(ExpectedConditions.titleContains("水果"));
    System.out.println("网页标题出现了“水果的关键字”");
    //获取桃子选项对象
    WebElement select = driver.findElement(By.xpath("//option[@id='peach']"));
    //调用ExpectedConditions的elementToBeSelected方法判断桃子是否处于选中状态
    wait.until(ExpectedConditions.elementToBeSelected(select));
    System.out.println("下拉列表框“桃子属于选中状态”");
    //调用ExpectedConditions的elementToBeClickable方法判断复选框是否处于可见及是否可被单击
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@type='checkbox']")));
    System.out.println("页面复选框处于显示和可被单击状态");
    //调用ExpectedConditions的presenceOfElementLocated方法判断p是否存在页面中
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//p")));
    System.out.println("页面的p元素标签已显示");
    //获取页面p标签元素
    WebElement p = driver.findElement(By.xpath("//p"));
    //调用ExpectedConditions的textToBePresentInElement方法判断p标签中是否包含爱吃的水果这几个字
    wait.until(ExpectedConditions.textToBePresentInElement(p, "爱吃的水果"));
    System.out.println("页面p标签元素包含爱吃的水果");
  }

  自定义的显示等待

  被测试HTML代码

  同上一个

  Java语言版本API实例 

  @Test
  public void testExplicitWait() {
    driver.manage().window().maximize();
    driver.navigate().to(url);
    try {
      //显示等待判断是否可以从页面获取文字输入框对象,如果可以获取则执行后面测试用例
      WebElement textInputBox = (new WebDriverWait(driver,10)).until(new ExpectedCondition<WebElement>() {
      @Override
      public WebElement apply(WebDriver d){
        return d.findElement(By.xpath("//*[@type='text']"));
      }
     });
    //断言判断输入框中是否包含这几个字
    Assert.assertEquals("今年夏天西瓜相当甜!", textInputBox.getAttribute("value"));
    //显示等待判断p标签中是否包含爱吃两个字,若包含则继续执行后面的测试同理
    Boolean containTextFlag = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
    @Override
    public Boolean apply(WebDriver d){
      return d.findElement(By.xpath("//p")).getText().contains("爱吃");
      }
    });
    //断言判断是否包含爱吃关键字
    Assert.assertTrue(containTextFlag);
    //显示等待判断文本框是否可见,若可见继续执行后面的测试用例
    Boolean inputTextVisibleFlag = (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
    @Override
    public Boolean apply(WebDriver d){
      return d.findElement(By.xpath("//*[@type='text']")).isDisplayed();
      }
    });
    //断言判断文本框是否可见
    Assert.assertTrue(inputTextVisibleFlag);
    } catch (NoSuchElementException e) {
      //若显示等待条件未被满足则执行
      Assert.fail("页面上的输入框元素未未找到!");
      e.printStackTrace();
    }
  }

WebDriverAPI(7)的更多相关文章

  1. WebDriverAPI(10)

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

  2. WebDriverAPI(9)

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

  3. WebDriverAPI(4)

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

  4. WebDriverAPI(2)

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

  5. WebDriverAPI(8)

    判断页面元素是否存在 测试网址 http://www.baidu.com Java语言版本API实例 @Test public void testIsElementPresent(){ driver. ...

  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. 643. Maximum Average Subarray I

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...

  2. 43 We were Born to Nap 我们天生需要午睡

    We were Born to Nap 我们天生需要午睡 ①American society is not nap-friendly.In fact, says David Dinged, a sle ...

  3. MyEclipse 过期

    package util; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRea ...

  4. Spring bean是如何加载的

    Spring bean是如何加载的 加载bean的主要逻辑 在AbstractBeanFactory中doGetBean对加载bean的不同情况进行拆分处理,并做了部分准备工作 具体如下 获取原始be ...

  5. Java性能调优:利用JFR生成性能日志

    Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻. 好的分析工具能起到事半功倍的效果,利用分析利器JMC.JFR,可以实现性能问题的准确定位. 本文主要阐述如何利用JFR生成 ...

  6. Bug中的中的小问题编程需要注意

    Bug中的中的小问题编程需要注意 1. 关于局部变量与全局变量是否同名问题 如果参数传递的是一个数组,且全局变量与参数数据同名,则局部变量作用域中,这两个同名的数据可能会引起冲突. 如下:如果一开始是 ...

  7. Java内存模型(一)

    主存储器和工作存储器 Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域,这些区域包括方法区,堆,虚拟机栈,本地方法栈,程序计数器.方法区存储类信息,常量,字节码等数据 ...

  8. POJ1062不错的题——spfa倒向建图——枚举等级限制

    POJ1062 虽然是中文题目但是还是有一定几率都不准题目意思的:1.所有可能降价的措施不是降价多少钱而是降至多少钱2.等级范围:是你所走的那一条路中所有人中最好最低等级差不允许超过limit限制 思 ...

  9. 页面中的删除确认(ajax)、输入框中确认信息是否可用(ajax)的jquery代码

    1.页面中的删除确认(ajax) <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...

  10. NLTK之WordNet 接口

    WordNet是面向语义的英语词典,类似于传统字典.它是NLTK语料库的一部分,可以被这样调用: 更简洁的写法: 1.单词 查看一个单词的同义词集用synsets(); 它有一个参数pos,可以指定查 ...