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);

希望它能帮到你:)

相关文章

转载地址:https://www.cnblogs.com/mini-monkey/p/12104821...
web自动化测试过程中页面截图相对比较简单,可以直接使用sel...
目录前言一、Selenium简介二、浏览器驱动1.浏览器驱动参考2....
一、iframe的含义:iframe是HTML中框架的一种形式,在对界面...
转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.to...
'''##**认识selenium**​**下载:pipinstall...