首页 > 其他分享 >API实例详解

API实例详解

时间:2023-04-08 21:57:22浏览次数:53  
标签:API Assert driver WebElement 实例 findElement iframe 详解 页面

一、访问网页地址:get(url)

  Java代码

String url="http://www.baidu.com";
driver.get(url);

 

二、刷新当前网页:navigate().refresh()

  java代码

String url="http://www.baidu.com";
driver.get(url);
driver.findElement(By.id("kw")).sendKeys("123123123");
Thread.sleep(2000);
//刷新浏览器当前网页
driver.navigate().refresh();
 

 

三、获取页面title属性:getTitle()

  java代码

String url="http://www.baidu.com";
driver.get(url);
//获取页面的title属性
String title=driver.getTitle();
System.out.println(title);
//断言页面上的title值是不是  百度一下,你就知道
Assert.assertEquals("百度一下,你就知道",title);
 

 

四、获取页面源代码:getPageSource()

  java代码

String url="http://www.baidu.com";
driver.get(url);
//获取页面源代码
String pagesource=driver.getPageSource();
System.out.println(pagesource);
//断言源代码中是否包含“百度一下,你就知道”
Assert.assertTrue(pagesource.contains("百度一下,你就知道"));
 

 

五、获取当前页面的URL地址:getCurrentUrl()

  Java代码

String url="http://www.baidu.com/";
driver.get(url);
//获取URL地址
String getUrl=driver.getCurrentUrl();
//断言
Assert.assertEquals("https://www.baidu.com/", getUrl);
 

 

六、清空文本框:clear()

  java代码  

WebElement baiduKw=driver.findElement(By.id("kw"));

baiduKw.sendkeys("selenium");

baiduKw.clear();

 

七、文本框输入文本:sendkeys()

  java代码  

WebElement baiduKw=driver.findElement(By.id("kw"));
baiduKw.sendKeys("selenium");

 

八、单击元素:click()

  java代码  

WebElement baiduKW=driver.findElement(By.cssSelector("#su"));
baiduKW.click();

 

九、双击元素

  HTML源码

<input id='inputBox' type="button" style="width:100px;height:50px;" ondblclick="javascript:this.style.background='red'">请双击按钮</>

  Java代码

WebElement inputB=driver.findElement(By.xpath("//input[@id='inputBox']"));
//声明Action对象
Actions ac=new Actions(driver);
//使用doubleClick方法在定位的元素中进行鼠标的双击操作
ac.doubleClick(inputB).build().perform();

 

十、获取文本:getText()

  java代码  

//定位百度首页右上角的 新闻
WebElement XW=driver.findElement(By.xpath("//*[@name='tj_trnews']"));
//获取文本
String Text1=XW.getText();
//校验文本内容
Assert.assertEquals(Text1,"新闻");
 

 

十一、判断元素是否展示:isDisplayed()

  java代码  

WebElement baiduSu=driver.findElement(By.xpath("//*[@id='su']"));
//获取 百度一下 按钮是否显示
boolean Su=baiduSu.isDisplayed();
//校验结果
Assert.assertTrue(Su);

 

十二、判断元素是否激活:isEnabled()

  HTML源码:

<td>Button按钮</td>

  <td class="SubButton">
      <div id='button'>

       <input name="buttonSub" type='button' class='button' value='Submit' disabled="disabled"/>

     </div>

   </td>
 

  Java代码:  

//定位元素,判断是否激活
boolean submit=driver.findElement(By.xpath("//*[@name='buttonhtml']")).isEnabled();
//校验结果
Assert.assertTrue(submit);

 

十三、判断选择框是否被选中:isSelected()

  HTML源码:

<td>RadioBox单选框</td>
    <td class="widgetStyle">
     <div id='radio'>
      <input type='radio' name="identity" class='a'/><label>a</label></br>
      <input type='radio' name="identity" class='b'/><label>b</label></br>
      <input type='radio' name="identity" class='c'/><label>c</label></br>
      <input type='radio' name="identity" class='d'/><label>d</label>
     </div>
  </td>
 

 

  java代码:  

//定位a单选框
WebElement a=driver.findElement(By.xpath("//*[@id='radio']/input[1]"));
//点击单选框
a.click();
//获取单选框是否被选中
boolean b1=a.isSelected();
//校验结果
Assert.assertTrue(b1);
 

 

十四、select下拉框处理

  1. selectByIndex() 根据索引来选取,从0开始

  2. selectByValue() 根据属性value的属性值来选取

  3. selectByVisibleText()根据标签之间的Text值,也就是页面显示的

  注意:导入的包要正确不然会报错。   import org.openqa.selenium.support.ui.Select;

    单选下拉列表: 

  HTML源码

<tr>
    <td>Select下拉列表</td>
          <div id='select'>
                <select id="selected">
                    <option value ="a">huawei</option>
                    <option value ="b">oppo</option>
                    <option value="c">vivo</option>
                    <option value="d">xiaomi</option>
                    <option value="e">hongmi</option>
                    <option value="f">meizu</option>
                </select>
          </div>                                
    </tr>
 

  Java代码

package cn.WebDriverAPI;
//单选下拉框
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.Select;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;


public class downList {
    public WebDriver driver;
    @Test
    public void test(){
        System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe");
        driver=new ChromeDriver();
        driver.get("file:///C:/Users/Administrator.USER-20180602NR/Desktop/selenium.html");
        WebElement s=driver.findElement(By.xpath("//select[@id='selected']"));
        Select select=new Select(s);
        //isMultiple表示此下拉框列表是否允许多选,返回结果应为false
        Assert.assertFalse(select.isMultiple());
        //输出isMultiple方法返回的值
        Boolean b=select.isMultiple();
        System.out.println("b:"+b);
        //通过选项的文字进行选中
        select.selectByVisibleText("oppo");
        //获取当前被选中的下拉列表选项文本并赋给text1
        String text1=select.getFirstSelectedOption().getText();
        //断言
        Assert.assertEquals("oppo", text1);
        System.out.println("文本"+text1);
        //使用下拉列表选项的value属性值进行选中操作
        select.selectByValue("c");
        //获取当前被选中的下拉列表选项文本并赋给text2
        String text2=select.getFirstSelectedOption().getText();
        //断言
        Assert.assertEquals("vivo",text2);
        //通过索引选择,从0开始
        select.selectByIndex(3);
        String text3=select.getFirstSelectedOption().getText();
        Assert.assertEquals("xiaomi",text3);
    }
    @AfterMethod
    public void afterMethod(){
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        driver.quit();
    }

}
 

十五、多选的下拉列表:

  HTML源码

<select id="selects" multiple="multiple">
            <option value="java">java</option>
            <option value="c">c</option>
            <option value="c++">c++</option>
            <option value="VB">VB</option>
            <option value="php">php</option>
            <option value="python">python</option>
            <option value="ruby">ruby</option>
</select>
 

 

  java代码

 
        WebElement mus=driver.findElement(By.id("selects"));
        Select select=new Select(mus);
        //断言下拉列表是否支持多选,支持多选isMultiple方法则返回True
        Assert.assertTrue(select.isMultiple());
        //通过索引选择
        select.selectByIndex(0);
        //获取当前被选中选项的文字
        String text=select.getFirstSelectedOption().getText();
        //断言获取到的文字是否符合实际
        Assert.assertEquals("java",text);
        //通过value值选择
        select.selectByValue("c");
        //通过选项文字选择
        select.selectByVisibleText("VB");
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //取消所有选项的选中状态
        select.deselectAll();
 

 

 十六、操作radio单选框

  HTML源码

<div id='radio'>
     <input type='radio' name="fruit" class='yi'/><label>yi</label></br>
     <input type='radio' name="fruit" class='er'/><label>er</label></br>
     <input type='radio' name="fruit" class='san'/><label>san</label></br>
     <input type='radio' name="fruit" class='si'/><label>si</label></br>
     <input type='radio' name="fruit" class='wu'/><label>wu</label>
</div>
 

 

  java代码

    //查找class属性为yi的按钮
        WebElement yi=driver.findElement(By.className("yi"));
        //判断此按钮是否为选中状态,如果不是则调用click方法进行点击
        if(!yi.isSelected())
            yi.click();
        //断言class属性值为yi的按钮处于被选中状态。此时isSelected方法返回值应为True
        Assert.assertTrue(yi.isSelected());
        //输出isSelected方法返回值
        Boolean b=yi.isSelected();
        System.out.println("b:"+b);
 

 

 

 

十七、操作CheckBox复选框

  HTML源码

<div id='checkboxs'>
      <input type="checkbox" name="checkbox2"/><label>liu</label></br>
      <input type="checkbox" name="checkbox3"/><label>qi</label></br>
      <input type="checkbox" name="checkbox4"/><label>ba</label></br>    
      <input type="checkbox" name="checkbox5"/><label>jiu</label></br>
      <input type="checkbox" name="checkbox6"/><label>shi</label>            
 </div>
 

 

  java代码

 

//查找name值为checkbox2的复选框
        WebElement liu=driver.findElement(By.xpath("//input[@name='checkbox2']"));
        //判断如果此复选框还未被选中,则调用click方法单击选中
        if(!liu.isSelected())
            liu.click();
        //断言此复选框被成功选中
        Assert.assertTrue(liu.isSelected());
        //停2秒看效果
        Thread.sleep(2000);
        //判断如果此复选框处于被选中状态则再次调用click方法进行单击取消复选框的选中状态
        if(liu.isSelected())
            liu.click();
        //断言此复选框处于非选中状态
        Assert.assertFalse(liu.isSelected());
        Thread.sleep(2000);    
        //再次选中name值为checkbox2的复选框
        liu.click();
        Thread.sleep(2000);    
        //查找所有type属性值为 checkBox的复选框,并存在list容器内
        List<WebElement> checkboxs= driver.findElements(By.xpath("//input[@type='checkbox']"));
        //遍历容器中所有元素,判断每个复选框处于非选中状态,非选中状态的则调用click方法单击
        //因为name值为checkbox2的复选框在上一步时已被选中所有在for循环中不会再被点击
        for(WebElement checkbox:checkboxs){
            System.out.println(checkbox.isSelected());
            Thread.sleep(1000);
            if(!checkbox.isSelected())
                checkbox.click();
        }
 

 

 十八、检查页面元素文本是否符合预期

  Java代码

driver.get("http://www.baidu.com");
//获取网页title文字
String text=driver.getTitle();
Assert.assertEquals("百度一下,你就知道",text);
//判断title文字内容是否包含 百度一下
Assert.assertTrue(text.contains("百度一下"));
//判断title文字内容开始文字是不是  百度
Assert.assertTrue(text.startsWith("百度"));
//判断title文字内容的末尾文字是不是  知道
Assert.assertTrue(text.endsWith("知道"));
 

十九、判断页面元素是否存在

  Java代码

package cn.WebDriverAPI;
//判断页面元素是否存在

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
import junit.framework.Assert;


public class ElementPresent {
    WebDriver driver;
    //写一个判断页面元素是否存在的方法 IsElementPresent
    private boolean IsElementPresent(By by){
        try{
            //如果使用传入的参数by能找到页面元素,则函数返回true,表示成功地找到页面元素
            driver.findElement(by);
            return true;
        }catch(NoSuchElementException e){
            //如果使用传入的参数by 没有找到页面元素,返回false
            return false;
        }
    }
    @Test
    public void test(){
        System.setProperty("webdriver.chrome.driver","E://chromedriver.exe");
        driver=new ChromeDriver();
        driver.get("http://www.baidu.com");
        //调用写的IsElementPresent方法查找元素
        if(IsElementPresent(By.xpath("//input[@name='wd']"))==true){
            //如果成功定位到页面元素,则把页面元素对象存储到element变量中
            WebElement element=driver.findElement(By.xpath("//input[@name='wd']"));
            //判断element变量对象是否处于可能状态。如果可用则输入“selenium”关键字
            if(element.isEnabled()==true){
                element.sendKeys("selenium");
            }
        }else{
            //如果页面元素没找到,则将此用例设置为失败,并打印原因
            Assert.fail("页面元素没找到");
        }
    }
    @AfterMethod
    public void aftermethod() throws InterruptedException{
        Thread.sleep(2000);
        driver.quit();
    }

}
 

 

二十、通过句柄来识别和操作新弹出的浏览器窗口

  HTML源码

<html>
    <head>
        <title>Selenium</title>
        
    </head>
    <body>
    <td>Input输入框</td>
        <div id='ifra' >            
            <input type="text" id="input" name='ips'/>
        </div>    
        </br>
        <div id='open'>
            <a href="http://www.baidu.com" class='open' target='bank'>Open new window打开百度</a><br>
        </div>
    <br>    
    </body>
</html>
 

  java代码

//定位点击元素,打开新的窗口
driver.findElement(By.className("open")).click();
//获取当前页面句柄
String handle=driver.getWindowHandle();
//获取所有页面句柄,并循环判断不是当前的句柄就做选取switchTo()
for(String handles:driver.getWindowHandles()){
    if(handles.equals(handle))
      continue;//跳过本次循环,不执行下面的命令直接进行下一次循环
      //break; //结束全部for循环
    driver.switchTo().window(handles);
}
//在新打开的页面中进行操作
driver.findElement(By.id("input")).sendKeys("新页面");
//关闭新页面
driver.close();
//选择原来的句柄,切到原来的界面
driver.switchTo().window(handle);
//在原来的界面进行操作
driver.findElement(By.id("input")).sendKeys("旧页面");
 

  

二十一、使用Title属性识别和操作新淡出的浏览器窗口

  HTML源码

<html>
    <head>
        <title>SeleniumElement</title>
        
    </head>
    <body>
    <td>Input输入框</td>
        <div id='ifra' >            
            <input type="text" id="input" name='ips'/>
        </div>    
        </br>
        <div id='open'>
            <a href="http://www.baidu.com" class='open' target='bank'>Open new window打开百度</a><br>
        </div>
    <br>    
    </body>
</html>
 

 

  Java代码

//定位点击连接元素,打开新窗口
        driver.findElement(By.xpath("//a[text()='Open new window打开百度']")).click();
        //获取当前页面句柄
        String handle=driver.getWindowHandle();
        //获取所有页面句柄
        Set<String> allHandle=driver.getWindowHandles();
        //如果容器存储的对象不为空,则遍历allHandle中所有句柄
        if(!allHandle.isEmpty()){
            for(String windowhandle:allHandle){
                try{
                    //调用driver.switchTo().window(windowhandle).getTitle()方法
                    //获取浏览器的Title属性,并判断是否是“百度一下,你就知道”
                    if(driver.switchTo().window(windowhandle).getTitle().equals("百度一下,你就知道"))
                        //判断正确则说明是百度首页,则在输入框中输入  javaselenium
                        driver.findElement(By.xpath("//input[@id='kw']")).sendKeys("javaselenium");
                }catch(NoSuchWindowException e){
                    //如果没有,抛出NoSuchWindowException,打印异常的堆栈信息
                    e.printStackTrace();
                }
            }
        }
        //返回最开始打开的浏览器页面
        driver.switchTo().window(handle);
        //断言浏览器页面的Title属性值是否是   SeleniumElement
        Assert.assertEquals(driver.getTitle(),"SeleniumElement");
        driver.findElement(By.xpath("//input[@id='input']")).sendKeys("123456");
 

 

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

  HTML源码(同二十一)

  java代码

//打开新窗口 百度页面
        driver.findElement(By.xpath("//a[text()='Open new window打开百度']")).click();
        //获取当前页面的句柄
        String OldHandle=driver.getWindowHandle();
        //获取所有句柄
        Set<String> AllHandle=driver.getWindowHandles();
        //判断如果AllHandle不为空则进行遍历AllHandle
        if(!AllHandle.isEmpty()){
            try{
            for(String Handle:AllHandle){
                //调用driver.switchTo().window(Handle).getPageSource().contains()方法
                //逐个获取页面的源码,判断是否包含“百度一下,你就知道”
                if(driver.switchTo().window(Handle).getPageSource().contains("百度一下,你就知道"))
                    //如果判断成立,则说明当前页面为百度首页,并在输入框中输入  java
                    driver.findElement(By.xpath("//input[@id='kw']")).sendKeys("java");
            }
            }catch(NoSuchWindowException e){
                e.printStackTrace();
            }
            //调用driver.switchTo().window()方法切到原页面,在输入框中输入old页面
            driver.switchTo().window(OldHandle).findElement(By.xpath("//input[@id='input']")).sendKeys("old页面");
            //断言页面源码包含   SeleniumElement
            Assert.assertTrue(driver.getPageSource().contains("SeleniumElement"));
 

 

二十三、alert弹窗

        HTML源码:

<input id='test' type='button' onclick="alert('这是一个alert弹框');" value='单击此按钮,弹出alert弹窗'>

  java代码:  

//定位Alert弹窗
WebElement At=driver.findElement(By.id("test"));
//点击alert按钮
At.click();
//选择alert弹窗
Alert alert=driver.switchTo().alert();
//获取alert弹窗中的文本内容
String text=alert.getText();
//校验alert弹窗中的文本
Assert.assertEquals(text,"这是一个alert弹框");
//点击alert弹窗中的确定按钮
alert.accept();
 

 

二十四、Confirm弹窗

  HTML源码:

<input id='testcf' type='button' onclick="confirm('这是一个confirm弹框');" value='单击此按钮,弹出confirm弹窗'></input>

  java代码:

//定位confirm按钮
WebElement Cf=driver.findElement(By.xpath("//*[@id='testcf']"));
Cf.click();
//选取alert弹窗
Alert confirm=driver.switchTo().alert();
//点击confirm弹窗上的确定按钮
confirm.accept();
//点击confirm弹窗上面的取消按钮
//confirm.dismiss();
 

 

二十五、prompt弹窗

  HTML源码

<input id='testpt' type='button' onclick="prompt('这是一个prompt弹框');" value='单击此按钮,弹出prompt弹窗'></input>

  Java代码

//定位prompt按钮
WebElement Cf=driver.findElement(By.xpath("//*[@id='testpt']"));
Cf.click();
//选取alert弹窗
Alert prompt=driver.switchTo().alert();
//在prompt弹窗的输入框中输入文字
prompt.sendKeys("在prompt弹窗中的输入框中输入123za。。。");
Thread.sleep(3000);
//点击prompt弹窗中的确定按钮
prompt.accept();
//点击Prompt弹窗中的取消按钮
//prompt.dismiss();
 

 

二十六、Frame(iFrame)中元素的定位和操作

    frame标签有frameset、frame、iframe三种,frameset在selenium中跟其他普通标签没有区别,不需要层层切换,不影响正常的定位。而frame与iframe需要层层切,他俩对selenium定位而言是一样的,selenium有一组方法对frame(iFrame)进行操作。具体方法有如下几种(java代码中都有用到):

    ① 使用iframe标签的id或name属性值定位到iframe

    ② 使用WebElement方法定位到iframe

    ③ 使用index方法定位到iframe

    ④ 使用iframe中的HTML源码定位到iframe

    

  HTML源码

<html>
    <head>
        <title>Frame</title>
        <meta http-equiv=Content-Type content="text/html;charset=utf-8">
        <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
        <meta content=always name=referrer>
    </head>
    <body>
    <td>Input输入框</td>
        <div id='put' >
            <input type="text" id="input" name='ips'/>
        </div>
        <br>
    <div id='iFrame'>
        <td>Iframe1</td><br>
            <iframe width=700 height=153 id=iFrameId frameborder=0 src="Xpath.html"></iframe>
            <br>
            <br>
        <td>Iframe2</td><br>
            <iframe width=700 height=150 name=iFrameName frameborder=0 src="Xpath.html"></iframe>
    </div>
    </body>
</html>
 

 

  java代码  

     //通过iframe标签的id属性值定位到Iframe1中的iframe,并将控制权交给它
        driver.switchTo().frame("iFrameId");
        //定位iframe框架1中的输入框并输入  iFreme1
        WebElement iF1=driver.findElement(By.xpath("//input[@id='input']"));
        iF1.sendKeys("iFreme1");
        //等2秒看效果
        Thread.sleep(2000);
        //清除文本
        iF1.clear();
        //控制权交回原来的界面
        driver.switchTo().defaultContent();
        //在外面的输入框中输入   defaultContend
        WebElement in=driver.findElement(By.xpath("//input[@id='input']"));
        in.sendKeys("defaultContend");
        Thread.sleep(2000);
        in.clear();
        Thread.sleep(2000);
        
        //通过iframe的name属性值定位Iframe2中的iframe,并将控制权交给它
        driver.switchTo().frame("iFrameName");
        //在Iframe框架2中的输入框中输入iFrame2
        WebElement iF2=driver.findElement(By.xpath("//input[@id='input']"));
        iF2.sendKeys("iFreme2");
        Thread.sleep(2000);
        iF2.clear();
        //控制权交回原来的界面
        driver.switchTo().defaultContent();
        Thread.sleep(2000);
        
        //通过WebElement方法定位到iFrame。
        //通过iframe标签的height属性值定位iframe1
        WebElement ifr1=driver.findElement(By.xpath("//iframe[@height='153']"));
        //控制权交给iframe1
        driver.switchTo().frame(ifr1);
        //定位里面的输入框
        WebElement iFrame1input=driver.findElement(By.id("input"));
        //输入   WebElement
        iFrame1input.sendKeys("WebElement");
        Thread.sleep(2000);
        //清除文本
        iFrame1input.clear();
        //控制权交给原来的界面
        driver.switchTo().defaultContent();
        
        
        //使用index方法进入指定iframe,索引号从 0 开始
        //控制权交给iframe2。如果是0的话切到iframe1中
        driver.switchTo().frame(1);
        //定位里面的输入框
        WebElement iFrame2input=driver.findElement(By.id("input"));
        //输入   WebElement
        iFrame2input.sendKeys("index");
        //清除文本
        Thread.sleep(2000);
        iFrame2input.clear();
        //控制权交给原来的界面
        driver.switchTo().defaultContent();
        Thread.sleep(2000);
        
        //使用iframe中的HTML源码内容来定位操作iframe
        //找到页面中所有iframe,并存储到iframes容器里
        List<WebElement> iframes= driver.findElements(By.tagName("iframe"));
        //遍历iframes中所有iframe页面,查找包含  iFrameId 的iframe页面
        for(WebElement iframe:iframes){
            //将控制权交给iframe
            driver.switchTo().frame(iframe);
            //逐个iframe页面进行判断是否包含 iFrameId 关键字
            if(driver.getPageSource().contains("iFrameId")){
                //判断成立说明找到指定iframe页面,则在当前iframe页面中的输入框中输入  PageSourceIFrameID
                WebElement pg=driver.findElement(By.id("input"));
                pg.sendKeys("PageSourceIFrameID");
                //找到指定iframe后退出for循环
                break;
            }else{
                //如果没有找到指定iframe,则退出当前iframe页面。for循环继续进入下一轮循环
                driver.switchTo().defaultContent();
            }
        }
        //找到指定iframe页面并执行完后面语句后退出当前iframe页面
        driver.switchTo().defaultContent();
        //在输入框中输入  控制权回到原点
        driver.findElement(By.id("input")).sendKeys("控制权回到原点");
 

 

二十七、操作浏览器的Cookie

  可以在浏览器开发者工具页面查看效果,查看cookies路径:APPlication->Cookies

  java代码

     driver.get("http://www.baidu.com");
        //获取cookies
        Set<Cookie> data = driver.manage().getCookies();
        System.out.println(data);
        //获得cookies个数
        System.out.println(driver.manage().getCookies().size());
        
        //删除所有cookies
        driver.manage().deleteAllCookies();
        //获得cookies个数,此时cookies的个数为0
        System.out.println(driver.manage().getCookies().size());
        
        //设置cookies
        Cookie c1 = new Cookie("addCookies", "123456789");
        driver.manage().addCookie(c1);
        //新增了一条,此时cookie个数为1
        System.out.println(driver.manage().getCookies().size());
 

二十八、查看输入框输入的字符

  java代码

        driver.get("http://www.baidu.com");
        WebElement input=driver.findElement(By.id("kw"));
        input.sendKeys("Selenium");
        //调用getAttribute方法获取到输入框中的文本内容,并赋给text
        String text=input.getAttribute("value");
        //断言
        Assert.assertEquals("Selenium",text);
        System.out.println(text);        
 

标签:API,Assert,driver,WebElement,实例,findElement,iframe,详解,页面
From: https://www.cnblogs.com/ixtao/p/17299322.html

相关文章

  • 描述符示例详解
    代码这里要创建一个描述符,根据要求(如隐藏敏感信息、正确地设置日期的格式)对属性的值进行变换,并返回修改后的版本:fromdataclassesimportdataclassfromdatetimeimportdatetimefromfunctoolsimportpartialfromtypingimportCallableclassBaseFieldTransformatio......
  • JDBC-API详解--PreparedStatement
    PreparedStatement作用:1.预编译sql语句并执行:预防sql注入问题·sql注入sql注入是通过操作输入来修改事先定义好的sql语句,用以执行代码来对服务器进行攻击的方法写法: Stringsql="select*fromuserwhereusername=?andpassword=?";//注意参数要写成问号。Prep......
  • JDBC-API详解--ResultSet
    ResultSet作用:1.封装查询语句ResultSetexecuteQuery(sql):执行查询语句,返回ResultSet对象。·获取查询结果:booleannext();  1将光标从当前位置向前移动一行2判断当前行是否为有效行。返回值:true为有效行 false为无效行XXXgetXxx(参数)用于获取数据参数:可以是int......
  • JDBC-API详解--DriverManager
    DriverManager(驱动管理类)作用:1.注册驱动2.获取数据库连接参数:1.url:连接路径 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1......示例:jdbc:mysql://127.0.0.1:3306/db1;注:如果连接本机mysql服务器,且mysql服务器默认端口是3306,则url可以简......
  • JDBC-API详解--Connection
    Connection(数据库连接对象)作用:1.获取执行SQL的对象2.管理事务对于获取执行SQL的对象:·普通执行SQL对象:StatementcreateStatement();·预编译SQL的执行SQL对象(防止SQL注入):PreparedStatementprepareStatement(SQL);·执行存储过程的对象:CallableStatementprepareCall(SQL......
  • 什么是电商API接口?它能够给用户带来哪些好处
    电商API是什么?API集成对电子商务平台的好处我国电商保持快速的增长状态,近年来增速有些放缓,从2018年底开始进入了红海,电商也就变得难做起来,这意味着国内电商行业的竞争将更加激烈,电商体系加速成熟,运营成本日益增大,产品利润低,低价竞争无利润,加上2020年突如其来的疫情,电商企业运营亟......
  • 自定义线程池详解
    自定义线程池ThreadPoolExecutorexecutor=newThreadPoolExecutor(5,10,200,TimeUnit.MILLISECONDS, newArrayBlockingQueue<Runnable>(5));第一个参数:核心线程池大小,默认创建后就不会销毁,需要设置allowCoreThreadTimeOut为true时会销毁第二个参数:线程池最大大......
  • Java-SPI机制详解
    Java之SPI机制详解1:SPI机制简介SPI全称是ServiceProviderInterface,是一种JDK内置的动态加载实现扩展点的机制,通过SPI技术我们可以动态获取接口的实现类,不用自己来创建。这个不是什么特别的技术,只是一种设计理念。2:SPI原理JavaSPI实际上是基于接口的编程+策略模......
  • 面试题百日百刷-HBase中HTable API有没有线程安全问题,在程序是单例还是多例?
    锁屏面试题百日百刷,每个工作日坚持更新面试题。请看到最后就能获取你想要的,接下来的是今日的面试题: 1.HBase内部机制是什么?Hbase是一个能适应联机业务的数据库系统物理存储:hbase的持久化数据是将数据存储在HDFS上。存储管理:一个表是划分为很多region的,这些region分布式地......
  • 结合实例来分析SQL的窗口函数
    28人赞同了该文章这篇主要是用举栗子的方式来理解SQL中的窗口函数,加深大家对SQL窗口函数的理解。样例表这个样例表是我为了好理解,随便设计的,不符合数据库设计的三范式,请忽略。(一)标准聚合函数标准的聚合函数有avg、count、sum、max和min,接下来分别介绍这些聚合函数的窗......