簡體   English   中英

從select_list收集值以避免watir-webdriver ObsoleteElementError

[英]Collect values from select_list to avoid watir-webdriver ObsoleteElementError

我正在嘗試解決ObsoleteElementError http://bit.ly/qhEhMv的問題,並試圖從select_list收集值。 我敢肯定,我已經看了這么久,所以我錯過了一些愚蠢的東西。 我最近的是

SearchPeriodList = browser.select_list(:name => "ctl00$PageContent$ddlPeriodSelector")  
SearchPeriodValues =  browser.options.collect { |item| SearchPeriodList.option.value }  

SearchPeriodValues.each do |item| 
    puts "Selected Period: #{item}"
    browser.select_list.option(:value => (item)).select
    browser.button(:id => "PageContent_btnShowResult").click    
end


<select name="ctl00$PageContent$ddlPeriodSelector" id="PageContent_ddlPeriodSelector">
<option value="42">2011 Jun-Jul</option>
<option value="41">2011 Apr-May</option>
<option value="40">2010 Dec-Mar 2011</option>
<option value="39">2010 Sep-Nov</option>
<option value="33">2010 Jul-Aug</option>
<option value="26">2010 May-Jun</option>
<option value="18">2010 Mar-Apr</option>
<option value="19">2009 Aug</option>
<option value="29">2009 Apr</option>
</select>                                                                                                           
<input type="submit" name="ctl00$PageContent$btnShowResult" value="" id="PageContent_btnShowResult" class="butgo" />

但這只是重復第一個值,直到達到值的總數(在這種情況下為9)。

您循環瀏覽器中的每個選項,而不使用block變量。

嘗試這個:

require 'watir-webdriver'
b = Watir::Browser.new
b.goto 'http://dl.dropbox.com/u/18859962/outka5t.html'
search_period_list = b.select_list :name => 'ctl00$PageContent$ddlPeriodSelector' 
search_period_values =  search_period_list.options.collect { |option| option.value }
# => ["42", "41", "40", "39", "33", "26", "18", "19", "29"]
search_period_values.each do |item|
  puts item
  b.select_list(:name => 'ctl00$PageContent$ddlPeriodSelector').option(:value => (item)).select
  b.button(:id => "PageContent_btnShowResult").click
end

暫無
暫無

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

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