Как сравнить текст на странице входа, который загружается через несколько секунд после нажатия кнопки? - PullRequest
0 голосов
/ 26 апреля 2019

Я изучаю Selenium Webdriver и пишу код, чтобы заполнить регистрационную форму для rediff.com.При выборе идентификатора переадресации почты есть кнопка проверки, которая проверяет наличие введенного идентификатора и выдает результат, если выбранный идентификатор доступен для использования.Я хочу сравнить этот текст, и если идентификатор доступен, он автоматически заполняет остальную часть страницы, но если он недоступен, он останавливается и выдает сообщение для выбора нового идентификатора.Мне удалось кое-что сделать, но я не думаю, что это лучший подход, поэтому спрашиваю экспертов.Пожалуйста, предложите, чтобы я включил мой код ниже.Заранее спасибо за помощь.

public void fillformredifflocators() {  
    try {
        invokebrowser("http://register.rediff.com/register/register.php?FormName=user_details");
        driver.findElement(By.xpath("/html/body/center/form/div/table[2]/tbody/tr[3]/td[3]/input")).sendKeys("Rediff User");
        driver.findElement(By.xpath("/html/body/center/form/div/table[2]/tbody/tr[7]/td[3]/input[1]")).sendKeys("abcd540");
        driver.findElement(By.className("btn_checkavail")).click();
        driver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS);
        String expectedMessage = "Yippie! The ID you've chosen is available.";
        String Message = driver.findElement(By.xpath("//b[contains(text(),\"Yippie! The ID you've chosen is available.\")]")).getText();
        Assert.assertEquals(Message, expectedMessage);
         if (expectedMessage.equals(Message))
             {
             System.out.println("Congrats ! Your chosen id can be used");
             }
             else
             {
             System.out.println("Please use a different id as the chosen id is taken");
             }

        driver.findElement(By.xpath("/html[1]/body[1]/center[1]/form[1]/div[1]/table[2]/tbody[1]/tr[9]/td[3]/input[1]")).sendKeys("password123");
    } catch (Exception e) {

        e.printStackTrace();
    }
}

1 Ответ

0 голосов
/ 26 апреля 2019

Добро пожаловать на SO.

Вы должны улучшить локаторы, используемые в скрипте. Попробуйте использовать относительный xpath, а не абсолютный xpath. И вам не нужно хранить сообщение, а затем сравнить для проверки здесь. Просто проверьте, присутствует ли элемент с Yippie! The ID you've chosen is available. текстом, что его можно считать валидацией.

if (driver.findElements(By.xpath("//b[contains(text(),\"Yippie! The ID you've chosen is available.\")]")).size()>0){
    System.out.println("Congrats ! Your chosen id can be used");
}else{
    System.out.println("Please use a different id as the chosen id is taken");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...