[英]While working with Selenium webdriver, why do we use linked list for gathering links or dropdown contents with mutliple matches?
示例代碼是這樣的(這是最近向我詢問的面試問題)
列表linkElements = driver.findElements(By.tagName(“a”));
我會說,通過List
您可以動態添加,訪問和刪除相同類型的對象。 而且,即使它沒有內容也不介意。
通常,您可以根據需要選擇數據結構。 在執行findElements()
搜索時,我們說我們希望DOM中具有給定結構的所有元素,並且我們不能總是事先確定它的大小。 在這樣的條件下使用固定大小的陣列沒有多大意義。
我希望它有幫助:)
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");
}
您也可以通過多種方式參考以下內容: -
這里有更詳細的版本,可以幫助您確定何時使用列表: -
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
);
希望它能幫到你:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.