将webelement转换为字符串Selenium

时间:2019-03-12 15:56:47

标签: java selenium

嗨,我目前正在尝试对网站进行硒测试,但是无法将webelement转换为字符串。错误消息1 =出现的验证,因此我希望错误消息1 =错误消息,以便我知道测试成功。

public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver",
            "C:\\Users\\lees2\\Downloads\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("http://psage.public.cs.qub.ac.uk/ForgotPassword.aspx");
    driver.manage().window().maximize();
    driver.findElement(By.id("MainContent_Email")).sendKeys("test@test.com");
    driver.findElement(By.name("ctl00$MainContent$BtnSend")).click();
    driver.findElement(By.className("validation-summary-errors"));
    WebElement ErrorMessage1 = driver.findElement(By.className("validation-summary-errors"));
    String ErrorMessage = "\r\n" + "                    Unrecognised email address\r\n" + "                ";
    driver.close();
    if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
        System.out.println("Test successful");
    } else {
        System.out.println("Test failure");
    }

}

1 个答案:

答案 0 :(得分:0)

将WebElement转换为String是不明智的,因为它不会产生有意义的结果。

此外,您不能将WebElement与字符串值进行比较。

要获取字符串值,您需要在实现后使用getText()。

getText()是Selenium WebDrivers的预定义方法,用于检索指定的元素Text。

返回类型-字符串。

***************** 修改后的代码 ******************** ********

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver",
            "C:\\Users\\lees2\\Downloads\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("http://psage.public.cs.qub.ac.uk/ForgotPassword.aspx");
    driver.manage().window().maximize();
    driver.findElement(By.id("MainContent_Email")).sendKeys("test@test.com");
    driver.findElement(By.name("ctl00$MainContent$BtnSend")).click();
    driver.findElement(By.className("validation-summary-errors"));
    String ErrorMessage1 = driver.findElement(By.className("validation-summary-errors")).getText();
    String ErrorMessage = "\r\n" + "                    Unrecognised email address\r\n" + "                ";
    driver.close();
    if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
        System.out.println("Test successful");
    } else {
        System.out.println("Test failure");
    }

}

也不要使用此功能:

 if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
        System.out.println("Test successful");
    } else {
        System.out.println("Test failure");
    }

使用断言:

import org.testng.Assert;
Assert.assertEquals(ErrorMessage1, ErrorMessage);