Webdriver + HtmlUnitDriver + Java + Выпадающий - PullRequest
4 голосов
/ 27 апреля 2011

Я новичок в этом форуме, и я новичок в Selenium и во всем, что с ним связано. Я немного знаком с Java, но я определенно не профессионал

Я знаю, что есть такие темы, но я до сих пор не нашел свой ответ ... Потому что некоторые из них находятся в C # или .NET, ....

Я использую Webdriver и HtmlUnitDriver, потому что я не хочу, чтобы Selenium открывал браузер. Все должно быть сделано в фоновом режиме (не хочу ничего видеть, только 1 результат (если все прошло нормально или нет)).

Хорошо, как было сказано, вот ситуация. Я проверяю веб-сайт, и в какой-то момент мне нужно выбрать опцию из выпадающего списка (скажем, второй вариант). Но проблема в том, что это не сработает ...

Вот код, который я использую:

public class LoginLogout implements SeleniumTest{

    private WebDriver webDriver;

    @Override
    public void setUp(String baseURL){
        webDriver = new HtmlUnitDriver();
    }

    @Override
    public void invoke(){
        // Login

        webDriver.get("http://website");
        webDriver.findElement(By.name("username")).sendKeys("Dummy123456");
        webDriver.findElement(By.name("password")).sendKeys("Muddy");
        webDriver.findElement(By.className("Submit")).click();
        webDriver.findElement(By.name("/catalogue")).click();
        webDriver.findElement(By.name("/catalogue/search/synthesis/s10")).click();  
        webDriver.findElement(By.name("firstYear")).findElement(By.name("2008")).isSelected();
        webDriver.findElement(By.name("lastYear")).findElement(By.name("2008")).isSelected();
        webDriver.findElement(By.className("Submit")).click();
        webDriver.findElement(By.className("Label")).click();
    }

    @Override
    public void tearDown(){ 
        webDriver.close();
    }
}

Где я выбираю ПЕРВЫЙ и ПРОШЛЫЙ, вот где все идет не так ...

Может кто-нибудь, пожалуйста, помогите мне !!! Было бы здорово, если бы я заставил это работать (с вашей помощью)

Заранее спасибо

1 Ответ

5 голосов
/ 27 апреля 2011

isSelected () только скажет вам, если элемент уже выбран или нет, он фактически ничего не установит. Я полагаю, что вы хотите, чтобы привести WebElement к объекту Select, который предоставляет методы для выбора элементов окна выбора.

Select selectBox = (Select)webDriver.findElement(By.name("firstYear"));
selectBox.selectByValue("2008");

Вы также можете выбрать по индексу, который я считаю более надежным в тех случаях, когда на самом деле меня не волнует, какое значение выбрано, но нужно убедиться, что что-то выбрано.

selectBox.selectByIndex(0); // chooses first item.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...