试图检查是否选中了单选按钮

时间:2015-11-10 05:42:49

标签: java selenium xpath selenium-webdriver

我正在尝试检查网站http://www.makemytrip.com/上是否选中了单选按钮,但它始终显示为false。

public static void cBoxRbtnDd () throws Exception{
    driverGlobal.get("http://www.makemytrip.com/");
    driverGlobal.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

    String rdBtn = ".//*[@id='one_way_button1']/span";
    boolean att = driverGlobal.findElement(By.xpath(rdBtn)).isSelected();
    System.out.println(att);

    driverGlobal.findElement(By.xpath(rdBtn)).click();

    WebElement radioBtn = driverGlobal.findElement(By.xpath(rdBtn));
    new WebDriverWait(driverGlobal,10).until(ExpectedConditions.visibilityOf(radioBtn));

    boolean att1 = driverGlobal.findElement(By.xpath(rdBtn)).isSelected();
    System.out.println(att1);   
}

1 个答案:

答案 0 :(得分:1)

单选按钮通常使用<input>创建属性type="radio"。如果你注意到网站上的单选按钮,他们实际上正在使用<a>标签和DOM操作来创建单选按钮。

选择单选按钮的效果由CSS完成。请注意,所选单选按钮具有类active。因此,您需要检查类是否包含值active以确定它是否已被选中。

您可以使用下面给出的代码段:

public boolean ifActive(WebElement element) {
    String classes = element.getAttribute("class");
    return classes.contains("active");
}
ifActive(driverGlobal.findElement(By.id("one_way_button1")));    //false
ifActive(driverGlobal.findElement(By.id("round_trip_button1"))); //true
ifActive(driverGlobal.findElement(By.id("multi_city_button")));  //false

注释中的值是函数将返回的值。请注意,makemyrtip.com最初默认选择往返单选按钮。