java – 在使用Selenium webdriver时,为什么我们使用链表来收集链接或使用mutliple匹配的下拉内容?

示例代码是这样的(这是最近向我询问的面试问题)

列表linkElements = driver.findElements(By.tagName(“a”));

解决方法:

List表示对象的有序列表,这意味着您可以按特定顺序访问List的元素,也可以通过索引访问.您还可以多次向List添加相同的元素. List允许使用null元素,并且List中可以包含许多null对象

您将逐个获得特定顺序的所有结果.它还允许您添加重复项.我们的结果可能有重复,主要是我们在自动化中需要的,但如果您的要求不同而且您不需要重复,那么您可以使用其他集合类型.如果您使用set,那么它将不允许重复,并且它是对象的无序表示.

我们使用List,因为当我们使用findElements()而不是findElement()时,我们期望locator将返回超过1个元素(不是在每种情况或场景中).因此,使用List是一个很好的做法,因此我们的数据以有序的方式保存在列表中,以便我们可以正确使用它们.

一般来说,我以下面的方式使用List: –

 List<WebElement> allOptions = dropDown.findElements(By."OUR Locator");
    for ( WebElement we: allOptions) { 
        dropDown.sendKeys( Keys.DOWN ); //simulate visual movement
        sleep(250);       
        if ( we.getText().contains( text ) ) select.selectByVisibleText("Value1");
    }

您也可以通过多种方式参考以下内容: –

https://sqa.stackexchange.com/questions/8029/how-to-iterate-a-list-of-webelements-and-print-the-values-one-by-one-to-perform

这里有更详细的版本,可以帮助您确定何时使用列表: –

http://java67.blogspot.in/2013/01/difference-between-set-list-and-map-in-java.html

添加和访问元素

要向List添加元素,请调用其add()方法.此方法继承自Collection接口.这里有一些例子:

List listA = new ArrayList();

listA.add("element 1");
listA.add("element 2");
listA.add("element 3");

您可以通过索引访问它们,如下所示: –

String element0 = listA.get(0);
String element1 = listA.get(1);
String element3 = listA.get(2);

System.out.println(element0“”element1“”element3);

希望它能帮到你:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐