Java 将webelement转换为字符串Selenium
您好,我目前正在尝试为网站运行selenium测试,但是我无法将webelement转换为字符串。出现的ErrorMessage 1=验证,因此我需要ErrorMessage1=ErrorMessage,以便我知道测试成功Java 将webelement转换为字符串Selenium,java,selenium,Java,Selenium,您好,我目前正在尝试为网站运行selenium测试,但是我无法将webelement转换为字符串。出现的ErrorMessage 1=验证,因此我需要ErrorMessage1=ErrorMessage,以便我知道测试成功 public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\Users\\lees2\\Downloads\\chro
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");
}
}
是的,您无法将
WebElement
与字符串值进行比较。您必须获取此WebElement的文本值,即字符串,然后与预期的字符串值进行比较
if (ErrorMessage1.getText().equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
driver.close();应该放在末尾。希望这有帮助。是的,您不能将
WebElement
与字符串值进行比较。您必须获取此WebElement的文本值,即字符串,然后与预期的字符串值进行比较
if (ErrorMessage1.getText().equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
driver.close();应该放在最后。希望这有帮助。网站在输入无效电子邮件id时显示的错误消息在html结构中显示为
文本。因此,您可以简单地使用getText()
方法从元素中获取错误消息
对于元素,可以获得如下文本:
WebElement ErrorMessage1 = driver.findElement(By.className("validation-summary-errors"));
String invalidEmailErrorMessage = ErrorMessage1.getText();
然后,您可以直接将此invalidEmailErrorMessage
字符串与要验证的消息进行匹配,如:
if (invalidEmailErrorMessage.equalsIgnoreCase(ErrorMessage))
网站在输入无效电子邮件id时显示的错误消息在html结构中显示为文本。因此,您可以简单地使用getText()
方法从元素中获取错误消息
对于元素,可以获得如下文本:
WebElement ErrorMessage1 = driver.findElement(By.className("validation-summary-errors"));
String invalidEmailErrorMessage = ErrorMessage1.getText();
然后,您可以直接将此invalidEmailErrorMessage
字符串与要验证的消息进行匹配,如:
if (invalidEmailErrorMessage.equalsIgnoreCase(ErrorMessage))
请尝试ErrorMessage1.getText()
比较这些值
更新:
if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
import org.testng.Assert;
Assert.assertEquals(ErrorMessage1, ErrorMessage);
WebElement
不能用于比较字符串值。它公开了可用于比较字符串值的方法。请尝试比较值
更新:
if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
import org.testng.Assert;
Assert.assertEquals(ErrorMessage1, ErrorMessage);
WebElement
不能用于比较字符串值。它公开了可用于比较字符串值的getText()
方法。将WebElement转换为字符串是不明智的,因为它不会产生有意义的结果
此外,您不能将WebElement与字符串值进行比较
if (ErrorMessage1.getText().equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
要获取字符串值,需要在实现后使用getText()
getText()是一种Selenium WebDrivers预定义方法,用于检索指定的文本元素。
返回类型-字符串
*****************修改代码*********************************
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);
使用断言:
if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
import org.testng.Assert;
Assert.assertEquals(ErrorMessage1, ErrorMessage);
将WebElement转换为字符串是不明智的,因为它不会产生有意义的结果
此外,您不能将WebElement与字符串值进行比较
if (ErrorMessage1.getText().equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
要获取字符串值,需要在实现后使用getText()
getText()是一种Selenium WebDrivers预定义方法,用于检索指定的文本元素。
返回类型-字符串
*****************修改代码*********************************
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);
使用断言:
if (((String) ErrorMessage1).equalsIgnoreCase(ErrorMessage)) {
System.out.println("Test successful");
} else {
System.out.println("Test failure");
}
import org.testng.Assert;
Assert.assertEquals(ErrorMessage1, ErrorMessage);
虽然这个代码片段是受欢迎的,并可能提供一些帮助,但它将是如何以及为什么解决这个问题。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。虽然欢迎使用此代码片段,并可能提供一些帮助,但它将说明如何以及为什么解决此问题。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。