Selenium 简明教程
Selenium WebDriver - Checkboxes
Selenium Webdriver 可用于处理网页上的复选框。所有复选框都使用 input 标签名进行标识。此外,网页上的每个复选框都有一个名为 type 的属性,其值为 checkbox 。
Identify Checkbox on a Web Page
打开 Chrome 浏览器并启动一个应用程序。右键单击网页,然后单击“检查”按钮。要识别页面上的复选框,请单击可用 HTML 代码顶部的左上方箭头,如下所示。
一旦我们单击并指向复选框(在下面的图片中突出显示),它的 HTML 代码就会出现,反映了 input 标签名和 type 属性值为 checkbox。
Select Checkbox and Verify
让我们举一个上面页面的示例,我们将在 click() 方法的帮助下单击第一个复选框。然后我们将使用 isSelected() 方法验证复选框是否已选中。
要获取有关 isSelected() 方法的更多信息,请参阅链接 Selenium WebDriver WebElement Commands 。
Syntax
Webdriver driver = new ChromeDriver();
WebElement checkbox= driver.findElement(By.xpath("value of xpath"));
checkbox.click();
boolean result = checkBox.isSelected();
Example
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class HandlingCheckbox {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new ChromeDriver();
// adding implicit wait of 15 secs
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// Opening the webpage where we will identify checkbox
driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");
// identify the first checkbox
WebElement checkBox = driver.findElement(By.xpath("//*[@id='hobbies']"));
// click the checkbox
checkBox.click();
// check if a checkbox is selected
boolean result = checkBox.isSelected();
System.out.println("Checking if a checkbox is selected: " + result);
// Closing browser
driver.quit();
}
}
Checking if a checkbox is selected: true
Process finished with exit code 0
在上面的示例中,我们首先单击了第一个复选框,然后使用消息 - Checking if a checkbox is selected: true 在控制台中验证了该复选框是否已选中。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
Count Total Checkboxes
让我们举另一个下面页面的示例,我们将计算复选框的总数。在此示例中,复选框总数应为 3。
Syntax
Webdriver driver = new ChromeDriver();
List<WebElement> totalChks = driver.findElements
(By.xpath("<xpath value of all checkboxes>"));
int count = totalChks.size();
Example
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import java.util.List;
public class CountingCheckbox {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new ChromeDriver();
// adding implicit wait of 15 secs
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// Opening the webpage where we will identify checkbox
driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");
// Retrieve all checkboxes using locator and storing in List
List<WebElement> totalChks = driver.findElements(By.xpath("//input[@type='checkbox']"));
// count number of checkboxes
int count = totalChks.size();
System.out.println("Count the checkboxes: " + count);
//Closing browser
driver.quit();
}
}
Count the checkboxes: 3
在上面的示例中,我们计算了网页上的复选框总数,并在控制台中收到了消息 - Count the checkboxes: 3 。
Validate Checkboxes
让我们再举一个有关复选框的示例,我们将对复选框执行一些验证。首先,我们将使用 isEnabled() 方法检查复选框是否已启用/禁用。此外,我们将分别使用 isDisplayed() 和 isSelected() 方法验证它是否已显示和选中/未选中。
Syntax
Webdriver driver = new ChromeDriver();
// identify checkbox but not selected
WebElement checkBox = driver.findElement(By.xpath("<xpath value of checkbox>"));
// verify if checkbox is selected
boolean result = checkBox.isSelected();
System.out.println("Checking if a checkbox is selected: " + result);
// verify if checkbox is displayed
boolean result1 = checkBox.isDisplayed();
System.out.println("Checking if a checkbox is displayed: " + result1);
// verify if checkbox is enabled
boolean result2 = checkBox.isEnabled();
System.out.println("Checking if a checkbox is enabled: " + result2);
Example
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class CheckboxValidates {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new ChromeDriver();
// adding implicit wait of 15 secs
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// Opening the webpage where we will identify checkbox
driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");
// identify checkbox but not select
WebElement checkBox = driver.findElement
(By.xpath("//*[@id='practiceForm']/div[7]/div/div/div[2]/input"));
// verify if checkbox is selected
boolean result = checkBox.isSelected();
System.out.println("Checking if a checkbox is selected: " + result);
// verify if checkbox is displayed
boolean result1 = checkBox.isDisplayed();
System.out.println("Checking if a checkbox is displayed: " + result1);
// verify if checkbox is enabled
boolean result2 = checkBox.isEnabled();
System.out.println("Checking if a checkbox is enabled: " + result2);
// Closing browser
driver.quit();
}
}
Checking if a checkbox is selected: false
Checking if a checkbox is displayed: true
Checking if a checkbox is enabled: true
在上面的示例中,我们验证了一个复选框是否已显示、启用和选中,并在控制台中收到了以下消息 - Checking if a checkbox is selected: false, Checking if a checkbox is displayed: true and Checking if a checkbox is enabled: true 。