如何将 WebElements 存储在数组中
How to store WebElements in an array
我只是想知道如何将以下 webElements 存储在数组中。
WebElement NameLbl = driver.findElement(By.xpath("//h3[contains(text(),'Name')]"));
WebElement MobLbl = driver.findElement(By.xpath("//h3[contains(text(),'Mobile')]"));
WebElement LookingLbl = driver.findElement(By.xpath("//h3[contains(text(),'Looking for ')]"));
WebElement GenderLbl = driver.findElement(By.xpath("//h3[contains(text(),'Gender')]"));
WebElement MandatoryList = driver.findElement(By.xpath("//span[contains(text(),'*')]"));
我正在尝试使用下面的行来存储它,但它给出了一个错误。
List<WebElement> ExpList=new ArrayList<WebElement>() {NameLbl,MobLbl,LookingLbl,GenderLbl};
你不能像那样实例化列表。
您可能想要的是:
List<WebElement> ExpList = List.of(NameLbl, MobLbl, LookingLbl, GenderLbl);
它将您传递的参数转换为正确类型的列表。
我伤口建议另一种方法..
您可以使用 Robo Mop 建议的方法,但是 这不会让您稍后修改该列表。假设您有代码:
List<Object> objectList = Arrays.asList(new Object(), new Object());
objectList.add(new Object());
System.out.println(objectList);
上面的代码会抛出异常
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.AbstractList.add(AbstractList.java:153)
at java.base/java.util.AbstractList.add(AbstractList.java:111)
相反,我建议使用此方法:
List<Object> objectList = Stream.of(new Object(), new Object()).collect(Collectors.toList());
objectList.add(new Object());
System.out.println(objectList);
这将创建 ArrayList
对象,就像您进行试验一样。
我只是想知道如何将以下 webElements 存储在数组中。
WebElement NameLbl = driver.findElement(By.xpath("//h3[contains(text(),'Name')]"));
WebElement MobLbl = driver.findElement(By.xpath("//h3[contains(text(),'Mobile')]"));
WebElement LookingLbl = driver.findElement(By.xpath("//h3[contains(text(),'Looking for ')]"));
WebElement GenderLbl = driver.findElement(By.xpath("//h3[contains(text(),'Gender')]"));
WebElement MandatoryList = driver.findElement(By.xpath("//span[contains(text(),'*')]"));
我正在尝试使用下面的行来存储它,但它给出了一个错误。
List<WebElement> ExpList=new ArrayList<WebElement>() {NameLbl,MobLbl,LookingLbl,GenderLbl};
你不能像那样实例化列表。
您可能想要的是:
List<WebElement> ExpList = List.of(NameLbl, MobLbl, LookingLbl, GenderLbl);
它将您传递的参数转换为正确类型的列表。
我伤口建议另一种方法..
您可以使用 Robo Mop 建议的方法,但是 这不会让您稍后修改该列表。假设您有代码:
List<Object> objectList = Arrays.asList(new Object(), new Object());
objectList.add(new Object());
System.out.println(objectList);
上面的代码会抛出异常
Exception in thread "main" java.lang.UnsupportedOperationException at java.base/java.util.AbstractList.add(AbstractList.java:153) at java.base/java.util.AbstractList.add(AbstractList.java:111)
相反,我建议使用此方法:
List<Object> objectList = Stream.of(new Object(), new Object()).collect(Collectors.toList());
objectList.add(new Object());
System.out.println(objectList);
这将创建 ArrayList
对象,就像您进行试验一样。