Как проверить сообщение проверки ограничений html5 с помощью Selenium-Webdriver и Java - PullRequest
0 голосов
/ 22 марта 2019

Как мне проверить следующее сообщение?Обязательный класс имеет плавающее сообщение .:

, попробуйте следующее, но я получаю сообщение об ошибке "нет такого предупреждения"

package firsttestngpackage;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import org.testng.annotations.Test;

public class LoginBambu {

public String baseUrl = "http://132.148.19.159:8086/panel/#/login";
String driverPath = "H:\\chromedriver.exe";
public WebDriver driver;    

@Test
public void IniciarSesion() {
System.setProperty("webdriver.chrome.driver", driverPath);
driver = new ChromeDriver();
driver.get(baseUrl);

WebElement login = driver.findElement(By.cssSelector("#page-top > div.margen-panel-60.ng-scope > div > div.row.container-fluid.ng-scope > div:nth-child(1) > div > form > button"));
  login.click();

  String mensaje=driver.switchTo().alert().getText();
  System.out.println(mensaje);    
}
}

1 Ответ

0 голосов
/ 26 марта 2019

Сообщение Проверка ограничения 1005 является результатом использования метода API Ограничения element.setCustomValidity () .

Примечание :Проверка ограничений HTML5 не устраняет необходимость проверки на стороне сервера.Несмотря на то, что следует ожидать гораздо меньше недопустимых запросов форм, они могут отправлять некорректные браузеры (например, браузеры без HTML5 и JavaScript) или плохие парни, пытающиеся обмануть ваше веб-приложение.Следовательно, как и в случае с HTML4, вам также необходимо проверить входные ограничения на стороне сервера таким образом, чтобы это соответствовало тому, что делается на стороне клиента.

Решение

ДляЧтобы получить текст, полученный в результате использования метода element.setCustomValidity(), вы можете использовать следующее решение:

  • Блок кода:

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    public class validationmessage {
    
        public static void main(String[] args) {
    
            System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.addArguments("start-maximized");
            options.addArguments("disable-infobars");
            options.addArguments("--disable-extensions"); 
            WebDriver driver =  new ChromeDriver(options);
            driver.get("http://132.148.19.159:8086/panel/#/login");
            WebElement username = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.form-control.ng-pristine.ng-invalid.ng-invalid-required.ng-touched[placeholder='Usuario']")));
            System.out.println(username.getAttribute("validationMessage"));
        }
    }
    
  • Консольный вывод:

    Please fill out this field.
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...