java.lang.AssertionError: Несоответствие ожидаемого значения и найденного

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

@Test
public void tc001() {       
driver.get(baseUrl);
driver.findElement(By.xpath("//input[@name='email']")).click();
driver.findElement(By.xpath("//input[@name='email']")).clear(); driver.findElement(By.xpath("//input[@name='email']")).sendKeys("[email protected]");
driver.findElement(By.xpath("//input[@name='password']")).clear();driver.findElement(By.xpath("//input[@name='password']")).sendKeys("123456");
driver.findElement(By.xpath("(.//*[normalize-space(text()) and  normalize-space(.)='Forgot Your Password?']) [1]/preceding::button[1]")).click();
driver.findElement(By.linkText("Nadee")).click();
driver.findElement(By.linkText("Profile")).click();
Assert.assertEquals(driver.findElement(By.xpath("//input[@name='last_name']")).getText(),"sadas");    
driver.findElement(By.linkText("Log Out")).click();
}

Это текстовое поле, в котором мне нужно получить значение

input type = "text" value = "sadas" class = "mdl-textfield__input" id = "last_name" name = "last_name" placeholder = "Введите фамилию"

Указанный ниже код получил AssertionError, Assert.assertEquals (driver.findElement (By.xpath ("// input [@ name = 'last_name']")). GetText (), "sadas" );

Я обнаружил ошибку как java.lang.AssertionError: ожидалось [sadas], но найдено []

Как я могу это исправить? И почему я получаю эту ошибку, когда ожидаемое значение совпадает с найденным? (При проверке системы вручную)


person user3806999    schedule 23.01.2019    source источник


Ответы (2)


Пожалуйста, добавьте html-код, к которому вы получаете доступ, используя вышеуказанный скрипт.

person Waqar Nadir    schedule 23.01.2019
comment
‹Тип ввода = текстовое значение = sadas class = mdl-textfield__input id = last_name name = last_name placeholder = Введите фамилию› - person user3806999; 23.01.2019
comment
java.lang.AssertionError: ожидалось [sadas], но найдено [] исключение выше означает, что входное значение lastname возвращает нулевое или пустое значение. Возможно, вам нужно добавить выражение ожидания после нажатия кнопки профиля. Поделитесь своей полной html-страницей для получения точного решения. - person Waqar Nadir; 23.01.2019
comment
WebDriverWait textfeild = новый WebDriverWait (драйвер, 120); textfeild.until (ExpectedConditions.visibilityOfElementLocated (By.xpath (// input [@ name = 'last_name']))); - person user3806999; 23.01.2019
comment
Я обновил свой код, как указано выше, после щелчка по профилю, но результат был тот же - person user3806999; 23.01.2019
comment
Строка lastName = driver.findElement (By.xpath (// input [@ name = 'last_name'])). GetText (); и проверьте, возвращает ли он какое-либо значение или нет. - person Waqar Nadir; 23.01.2019
comment
поделитесь своей HTML-страницей, чтобы полностью понять ваш сценарий. Не уверен, но, возможно, на странице есть 2 входа с одинаковым именем (LastName). - person Waqar Nadir; 23.01.2019
comment
привет, я проверил html-страницу (я не могу поделиться ею, так как она принадлежит моей компании), но нет дублирования LastName. И я попробовал и другие текстовые поля (например, электронная почта, мобильный телефон, FirstName). то же самое результаты произошли - person user3806999; 24.01.2019
comment
1. Удалите webdrvier wait и добавьте Thread.sleep (5000); просто для тестирования. 2. Попробуйте использовать эту строку lastName = driver.findElement (By.xpath (// input [@ name = 'last_name'])); String textValue = lastName.getAttribute (значение); System.out.println (textValue); - person Waqar Nadir; 24.01.2019
comment
привет Вакар Надир, спасибо за вашу поддержку. Я пытался распечатать это. но ничего не печатается на консоли, ничего не получает по цене ... - person user3806999; 20.02.2019

Этот код поможет найти конкретный текст, это Javascript.

String expectedMessage = "Please enter password.";
    String message = w.findElement(By.xpath("//*[@id=\"sign_in_div\"]/form/div/ul/li[2]/div")).getText();
    Assert.assertTrue("Please enter password.", message.contains(expectedMessage));
person Aazad R khan    schedule 27.03.2019