我正在尝试检查网站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);
}
答案 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最初默认选择往返单选按钮。