2015-03-02 4 views
1

Я пытаюсь проверить, выбран ли ROUND TRIP или нет. Я вижу, что ROUND TRIP выбран, но все же я получаю вывод как ложный, почему?isSelected() метод return false in selenium code

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class IsSelected { 
public static void main(String[] args) { 
    WebDriver f= new FirefoxDriver(); 
    f.get("http://www.makemytrip.com/"); 
    WebElement e = f.findElement(By.id("round_trip_button1")); 
    System.out.println(e.isSelected()); 
    System.out.println(e.getText()); 
    System.out.println(e.isDisplayed()); 
    System.out.println(e.isEnabled()); 

    } 

}

ответ

1

IsSelected() применяется для ввода элементы, такие как Флажки, варианты в выберите и радиокнопки.

Но в вашем случае он реализован через «a» (якорный текст), поэтому по умолчанию выбрано значение «Выбран»() не будет работать.

Для вашего случая я проверил свойства «a», вы можете легко настроить метод isSelected(), проверив значение класса «active». Когда выбран round_trip_button1 id, его класс содержит строку «active», а другой «активный» отсутствует.

3

Элемент с round_trip_button1 идентификатором является a элементом, но вы должны реально input с radio типа вместо:

f.findElement(By.cssSelector("a#round_trip_button1 input[type=radio]")); 

UPD: следовать @aberry ответ - вам нужно для проверки метки a, чтобы иметь класс active. Определение function that would check for an element to have a class:

public static bool hasClass(WebElement el, string className) { 
    return el.getAttribute("class").split(' ').contains(className); 
} 

И использовать его:

hasClass(f.findElement(By.id("round_trip_button1")), 'active'); 
+0

все еще показывающий такой же ложный –

+0

@amolsaxena, пожалуйста, ознакомьтесь с обновлением. – alecxe

Смежные вопросы