簡體   English   中英

Watir-webdriver:使用索引訪問元素

[英]Watir-webdriver : Accessing elements using Indexing

我正在嘗試使用索引訪問li元素

<div class="item-list">
<ul>
<li class="views-row views-row-1 views-row-odd views-row-first">
<li class="views-row views-row-2 views-row-even">
<li class="views-row views-row-3 views-row-odd">
<li class="views-row views-row-4 views-row-even">
<li class="views-row views-row-5 views-row-odd">
<li class="views-row views-row-6 views-row-even">
<li class="views-row views-row-7 views-row-odd">
<li class="views-row views-row-8 views-row-even">
<li class="views-row views-row-9 views-row-odd views-row-last">
</ul>
</div>

我正在使用的代碼是

@browser.div(:class,'item-list').ul.li(:index => 2)

問題是:這些是頁面上的元素,我將使用循環訪問每個元素。 我以為使用索引將解決問題,但是當我編寫代碼並執行它時,出現以下錯誤

expected #<Watir::LI:0x2c555f80 located=false selector={:index=>2, :tag_name=>"li"}> to exist (RSpec::Expectations::ExpectationNotMetError)

如何使用索引訪問這些元素。

如果您有很好的類命名功能,那就不用索引了! 對“ views-row”參數進行部分匹配:

@browser.li(:class => /views-row-1/)

可以輕松地為循環將其參數化(盡管我不知道您對信息的處理方式,所以此循環不會很令人興奮)。

x = 0
until x==9
  x+=1
  puts  @browser.li(:class => /views-row-#{x}/).text
end

如果您願意,也可以盲目瀏覽div包含的li:

   @browser.div(:class,'item-list').lis.each do |li|
      puts li.text
   end

根據Watir Wiki,Watir 支持 li元素上的:index方法。 因此,除非它是watir-webdriver中的錯誤,否則我認為索引應該可以工作。

您可能想嘗試一下watir郵件列表,以查看這是否對其他人有問題。

暫無
暫無

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

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