嗨,我目前正在尝试对网站进行硒测试,但是无法将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");
}
}
答案 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);