Java 无法捕获和验证selenium webdriver中的错误验证消息

Java 无法捕获和验证selenium webdriver中的错误验证消息,java,selenium-webdriver,Java,Selenium Webdriver,我正在尝试验证以下内容的错误验证消息。 单击“提交验证”后,将显示所有字段的错误消息。 我尝试了以下代码: List<WebElement> errormsg = driver.findElements(By.className("errorValidation")); System.out.println(errormsg); driver.findElements()不返回错误消息字符串数组,它返回Selenium WebElements数组。每个元素都有一个文本值,您必须从每

我正在尝试验证以下内容的错误验证消息。 单击“提交验证”后,将显示所有字段的错误消息。 我尝试了以下代码:

List<WebElement> errormsg = driver.findElements(By.className("errorValidation"));
System.out.println(errormsg);
driver.findElements()
不返回错误消息字符串数组,它返回Selenium WebElements数组。每个元素都有一个文本值,您必须从每个WebElement获取该值:

System.out.println(errormsg[0].gettext());
System.out.println(errormsg[1].gettext());
...

(我在C#中进行Selenium测试,其中有一个名为“Text”的属性,但我认为在Java中有一个名为gettext()的方法。)

您可以使用以下代码:

List<WebElement> el = driver.findElements(By.xpath("//span[@class='errorValidation']")
类似于您可以应用的其他字段

希望这能奏效

谢谢 萨迪克

试着这样做: 我已经运行了这个代码,它的工作很好

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;

public class stackTest {
static WebDriver driver = null;
public static void main(String [] args) throws InterruptedException{

     WebDriver driver = new FirefoxDriver();


        driver.get("https://tenoapp.com/registerSchool");

        Thread.sleep(4000);
        driver.manage().window().maximize();
        driver.findElement(By.cssSelector("#submitRegForm")).click();
        Thread.sleep(4000);

        String[] urerrormsg = { "School name can't be blank", 
                "Number of students can't be blank", 
                "Board can't be blank", 
                "First name can't be blank",
                "Last name can't be blank",
                "Designation can't be blank",
                "Mobile number can't be blank",
                "Password can't be blank",
                "Confirm password can't be blank"};

        List<WebElement> erromsgsize =  driver.findElements(By.className("errorValidation"));
        System.out.println("***** "+erromsgsize.size());
        int i = 0;
        for (WebElement errormsg : erromsgsize) {

            System.out.println("**** "+errormsg.getText());
            if(errormsg.getText().equals("")){
                continue;
            }


            else
                Assert.assertTrue(errormsg.getText().equals(urerrormsg[i]));
            i++;
        }  

        //Close the browser
        driver.quit();

}

}
import java.util.List;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.support.ui.ExpectedCondition;
导入org.openqa.selenium.support.ui.WebDriverWait;
导入org.testng.Assert;
公共类堆栈测试{
静态WebDriver=null;
公共静态void main(字符串[]args)引发InterruptedException{
WebDriver=newfirefoxdriver();
驱动程序。获取(“https://tenoapp.com/registerSchool");
睡眠(4000);
driver.manage().window().maximize();
driver.findElement(By.cssSelector(“#submitRegForm”))。单击();
睡眠(4000);
字符串[]urerrormsg={“学校名称不能为空”,
“学生人数不能为空”,
“板不能为空”,
“名字不能为空”,
“姓氏不能为空”,
“名称不能为空”,
“手机号码不能为空”,
“密码不能为空”,
“确认密码不能为空”};
List erromsgsize=driver.findElements(By.className(“errorValidation”);
System.out.println(“*****”+erromsgsize.size());
int i=0;
对于(WebElement errormsg:ErrorMsgSize){
System.out.println(“*****”+errormsg.getText());
if(errormsg.getText().equals(“”){
继续;
}
其他的
Assert.assertTrue(errormsg.getText().equals(urerrormsg[i]));
i++;
}  
//关闭浏览器
driver.quit();
}
}

使用AssertTrue()显示编译错误是否使用TestNg?请检查是否使用。作为替代,我在上面的代码中也进行了更新实际上,你可以通过使用arraylist来更巧妙地完成这项工作……而不需要硬编码错误消息……尝试使用arraylist来完成这项工作……)
Assert.assertTrue(el.get(0).equals("School name can't be blank");
Assert.assertTrue(el.get(1).equals("Number of students can't be blank");
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;

public class stackTest {
static WebDriver driver = null;
public static void main(String [] args) throws InterruptedException{

     WebDriver driver = new FirefoxDriver();


        driver.get("https://tenoapp.com/registerSchool");

        Thread.sleep(4000);
        driver.manage().window().maximize();
        driver.findElement(By.cssSelector("#submitRegForm")).click();
        Thread.sleep(4000);

        String[] urerrormsg = { "School name can't be blank", 
                "Number of students can't be blank", 
                "Board can't be blank", 
                "First name can't be blank",
                "Last name can't be blank",
                "Designation can't be blank",
                "Mobile number can't be blank",
                "Password can't be blank",
                "Confirm password can't be blank"};

        List<WebElement> erromsgsize =  driver.findElements(By.className("errorValidation"));
        System.out.println("***** "+erromsgsize.size());
        int i = 0;
        for (WebElement errormsg : erromsgsize) {

            System.out.println("**** "+errormsg.getText());
            if(errormsg.getText().equals("")){
                continue;
            }


            else
                Assert.assertTrue(errormsg.getText().equals(urerrormsg[i]));
            i++;
        }  

        //Close the browser
        driver.quit();

}

}