1)操作页面元素之单选按钮:“性别”字段一般有俩个选项。如果不允许用户选择多个选项,可以使用表单元素的单选按钮对象。单选按钮用于一组互相排斥的值,也就是用户只能从选项表中选择一项。单选按钮中所有按钮共享同一个名称,所以浏览器知道将按钮组合在一起,通过选中其中一个按钮,其他按钮自动变为为选中状态。

 

 package com.glp.selenium;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.Assert;

import org.testng.annotations.AfterMethod;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Test;

public class TestOption {

    private WebDriver driver;

    private String baseUrl;

    @BeforeMethod

    public void setUp() {

        System.setProperty("webdriver.chrome.driver",

                "C:\\Driver\\chromedriver.exe");

        driver = new ChromeDriver(); // 浏览器初始化

        baseUrl = "file:///C:/Users/Lipin/workspace/guoliping_selenium/content/autotest.html";

        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

    }

    @Test

    public void testOptions() {

        driver.get(baseUrl);

        WebElement femaleRadioButton = driver

                .findElement(By.cssSelector("#sexID2"));

        if (!femaleRadioButton.isSelected()) {

            femaleRadioButton.click();

        }

        Assert.assertTrue(femaleRadioButton.isSelected());

        // Assert.assertEquals(femaleRadioButton.isSelected(), true);

    }

    @AfterMethod // 执行完测试用例关闭浏览器

    public void tearDown() throws Exception {

        Thread.sleep(3000);

        driver.quit();

    }

}

 

2)操作页面元素之多选按钮,Checkbox.下图为例:

 

 我们来分析下,一般人的做法是会一个个定位元素,不管是用 id/还是CSSselector 还是 XPath。但是为了是代码更简洁,我把它写成了一个for循环。

package com.glp.selenium;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.testng.Assert;

import org.testng.annotations.AfterMethod;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Test;

public class TestSelect {

    private WebDriver driver;

    private String baseUrl;

    @BeforeMethod

    public void setUp() {

        System.setProperty("webdriver.chrome.driver",

                "C:\\Driver\\chromedriver.exe");

        driver = new ChromeDriver(); // 浏览器初始化

        baseUrl = "file:///C:/Users/Lipin/workspace/guoliping_selenium/content/autotest.html";

        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

    }

    @Test

    public void testOptions() {

        driver.get(baseUrl);

        for (int i = 1; i < 5; i++) {

            WebElement JijieCheckBox = driver

                    .findElement(By.cssSelector("#u" + i));

            if (!JijieCheckBox.isSelected()) {

                JijieCheckBox.click();

            }

            Assert.assertTrue(JijieCheckBox.isSelected());

        }

    }

    @AfterMethod // 执行完测试用例关闭浏览器

    public void tearDown() throws Exception {

        Thread.sleep(3000);

        driver.quit();

    }

}