簡體   English   中英

在使用Selenium webdriver時,為什么我們使用鏈表來收集鏈接或下拉內容與mutliple匹配?

[英]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");
    }

您也可以通過多種方式參考以下內容: -

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

希望它能幫到你:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM