[英]How to convert WebElement to a string for an 'if' statement in selenium/Java
[英]Convert webelement to string Selenium
嗨,我目前正在嘗試對網站進行硒測試,但是無法將webelement轉換為字符串。 ErrorMessage 1 =出現的驗證,因此我想要ErrorMessage1 = ErrorMessage,所以我知道測試成功。
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(); 應該放在最后。希望這會有所幫助。
嘗試使用ErrorMessage1.getText()
比較這些值。
更新:
WebElement
不能用於比較字符串值。 它公開了可用於比較字符串值的getText()
方法。
網站在輸入無效的電子郵件ID時顯示的錯誤消息在html結構中顯示為text
。 因此,您可以簡單地使用getText()
方法從元素中獲取錯誤消息。
對於您的元素,可以得到如下文本:
WebElement ErrorMessage1 = driver.findElement(By.className("validation-summary-errors"));
String invalidEmailErrorMessage = ErrorMessage1.getText();
然后,您可以將這個invalidEmailErrorMessage
字符串與您要驗證的消息直接匹配,例如:
if (invalidEmailErrorMessage.equalsIgnoreCase(ErrorMessage))
將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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.