WebDriver API详解-操作页面元素

本文介绍如何使用 WebDriver API 对页面元素进行操作,包括清除输入框内容、输入文本、点击按钮、双击元素、操作下拉列表及单选和复选框等。

WebDriver API详解-操作页面元素

被测试网页的html代码

<html>
    <body>
        <input type="text" id="text" value="文本框默认内容">文本框</input>
        <input type="button" id="button" value="改变文本框的文字" onclick=document.getElementById("text").value="改变了"></input>
        </p>
        <input id='inputBox' type="text" onclick="javascript:this.style.background='red'" value="请双击"></input>
        </P>
        <select name='fruit' size=1>
            <option id='peach' value='taozi'>桃子</option>
            <option id='watermelon ' value='xigua'>西瓜</option>
            <option id='orange ' value='juzi'>橘子</option>
            <option id='kiweifruit' value='mihoutao'>猕猴桃</option>
            <option id='maybush' value='shanzha'>山楂</option>
            <option id='litchi' value='lizhi'>荔枝</option>
        </select>

        </P>
        <select name='fruit_multiple' size=6 multiple=true>
            <option id='peach' value='taozi'>桃子</option>
            <option id='watermelon ' value='xigua'>西瓜</option>
            <option id='orange ' value='juzi'>橘子</option>
            <option id='kiweifruit' value='mihoutao'>猕猴桃</option>
            <option id='maybush' value='shanzha'>山楂</option>
            <option id='litchi' value='lizhi'>荔枝</option>
        </select>

        </P>
        <input type="radio" name="fruit_radio" value="berry"/>草莓</input>
        <br/>
        <input type="radio" name="fruit_radio" value="watermelon"/>西瓜</input>
        <br/>
        <input type="radio" name="fruit_radio" value="orange"/>橘子</input>

        </P>
        <input type="checkbox" name="fruit_checkbox" value="berry"/>草莓</input>
        <br/>
        <input type="checkbox" name="fruit_checkbox" value="watermelon"/>西瓜</input>
        <br/>
        <input type="checkbox" name="fruit_checkbox" value="orange"/>橘子</input>

    </body>
</html>

1.在输入框中清除原有的文字内容

WebElement input = driver.findElement(By.id("text"));
// 清除文本框中的默认文字
input.clear();

2.在输入框中输入指定内容

String inputString = "测试工程师指定的输入内容";
WebElement input = driver.findElement(By.id("text"));
// 清除文本框中的原有内容,防止原有内容影响到测试结果,建议都清除掉
input.clear();
// 将自定义变量中的内容输入到文本框中
input.sendKeys(inputString);

3.单击按钮

WebElement button = driver.findElement(By.id("button"));
button.click();

4.双击某个元素

WebElement inputbox = driver.findElement(By.id("inputBox"));
// 声明Action对象
Actions builder = new Actions(driver);
// 使用doubleClick方法在输入框元素中进行鼠标的双击操作builder.doubleClick(inputbox).build().perform();

5.操作单选下拉列表

//getFirstSelectedOption().getText()方法表示获取当前被选中的下拉列表选项文本
Select dropList = new Select(driver.findElement(By.name("fruit")));

// selectByIndex方法表示选中下拉列表的第四个选项,索引从0开始
dropList.selectByIndex(3);

// selectByValue方法表示使用下拉列表选项的value属性值进行选中操作
dropList.selectByValue("shanzha");

// selectByVisibleText方法表示通过选项的文字来进行选中
ropList.selectByVisibleText("荔枝");

6.操作多选的选择列表

Select dropList = new Select(driver.findElement(By.name("fruit_multiple")));

// 使用选择项索引选择“猕猴桃”,索引从0开始
dropList.selectByIndex(3);

// 使用value属性值选择“山楂”属性
dropList.selectByValue("shanzha");

// 使用选项文字选择“荔枝”选项
dropList.deselectByVisibleText("荔枝");

// deselectAll方法表示取消所有选项的选中状态
dropList.deselectAll();

// 再次选中3个选项
dropList.selectByIndex(3);
dropList.selectByValue("shanzha");
dropList.selectByVisibleText("荔枝");

// deselectByIndex表示取消索引为3的选项的选中状态
ropList.deselectByIndex(3);

// deselectByValue方法表示取消value属性值为“shanzha”的选项的选中状态
dropList.deselectByValue("shanzha");

/ deselectByVisibleText方法表示通过选项文字取消“荔枝”选项的选中状态
dropList.deselectByVisibleText("荔枝");

7.操作单选框

// 查找属性为“orange”的单选按钮对象
WebElement radioOption = driver.findElement(By.xpath("//input[@name='fruit_radio'][@value='orange']"));
    // 如果此按钮处于处于未被选中状态,则调用click方法选中此单选按钮
    if (!radioOption.isSelected()) {
        radioOption.click();
    }
    // 查找name属性值为“fruit_radio”的所有单选按钮对象,并存储到一个list容器中
    List<WebElement> fruits = driver.findElements(By.name("fruit_radio"));
    System.out.println(fruits.size());
    // 使用for循环将list容器中的每个单选按钮进行遍历,查找value属性为“watermelon”的单选按钮,如果查找到此单选按钮未处于选中状态,则调用click方法进行单击操作
    for (WebElement fruit : fruits) {
        if (fruit.getAttribute("value").equals("watermelon")) {
            if (!fruit.isSelected()) {
                fruit.click();
                System.out.println("我被选中了");
            }
            // 成功选中后,退出for循环
            break;
        }
    }

8.操作复选框

// 查找value属性值为“orange”的复选框元素
WebElement orangeCheckbox = driver.findElement(By.xpath("//input[@name='fruit_checkbox'][@value='orange']"));
    // 如果此复选框未被选中,则调用click方法单击选中此复选框
    if (!orangeCheckbox.isSelected()) {
        orangeCheckbox.click();
        // 如果此复选框处于选中状态,则再次调用click方法单击取消复选框的选中状态
        if (orangeCheckbox.isSelected())
            orangeCheckbox.click();
        // 查找所有name为“fruit_checkbox”的所有复选框,并存放在list容器内
        List<WebElement> checkboxs = driver.findElements(By.name("fruit_checkbox"));
        // 遍历list容器中的所有复选框元素,调用click方法单击所有复选框,让全部复选框处于选中状态
        for (WebElement checkbox : checkboxs)
            checkbox.click();
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值