1
我有一個元素列表,必須使用迭代器進行掃描,然後單擊所需的元素。如何使用迭代器單擊當前元素
List <WebElement> lt = driver.findElements(By.tagName("strong"));
\t \t Iterator <WebElement> it= lt.iterator();
\t \t while(it.hasNext())
\t \t {
\t \t \t if(it.next().getText().equals(cat))
\t \t \t {
\t \t \t \t it.next().click();
\t \t \t \t break;
\t \t \t }
\t \t }
在我的代碼,當迭代器會查找元素,執行那張如果循環內,但選擇下一個元素,當它遇到it.next().click();
我怎麼點擊當前的由if循環指向的元素?
這是一種替代方案,但並沒有真正回答這個問題:「如何使用迭代器_」 – AxelH
@AxelH IMO點擊當前元素,「迭代器」最適合用於我們需要迭代到下一個項目/節點的用例。這裏OP的要求是驗證當前/當前項目/節點中的屬性。因此'for()'似乎是最合適的。是的,它也可以通過'iterator'來實現。 – DebanjanB
這不是我的觀點;)問題是關於'Iterator',僅供參考:** 1)**'for'循環會爲您創建迭代器,所以它正在做同樣的事情,請參閱[this thread]( https://stackoverflow.com/a/18410489/4391450)。 ** 2)**'Iterator'很好地「迭代」一個'Collection'並且能夠更新它(你不能刪除循環中的一個項目,'ConcurrentModificationException'發生)。但也給你一個簡單的解決方案來讀取一個集合,而不用管理長度(與你的相同,但有一個併發訪問,因爲如果需要,你沒有迭代器) – AxelH