1

現時点で私は持っています:

def addInfoToStory(idOfStory, *stories)

i = -1
numOfInputs = 9
  while i < numOfInputs
  stories.each.with_index do |story|
  $log.puts "i="+"#{i}"
  $log.puts story[i]
  $log.puts "i2="+"#{i}"
  @browser.div(id: "#{idOfStory}_firstCol").div(class: "tDetEntry", index: i+1).div.double_click
    if @browser.div(id: "#{idOfStory}_firstCol").div(class: "tDetEntry", index: (i+=1)).div(class: "formLib1").text_field(:id, "input").set(story[i])
       sleep 2
       @browser.send_keys(:tab)
    else @browser.div(id: "#{idOfStory}_firstCol").div(class: "tDetEntry", index: (i+=1)).div(class: "formLib1").select_list(:id, "select").set(story[i])
       sleep 2
       @browser.send_keys(:tab)
    end
  end 
 end
end

情報の大部分は正常に機能するテキストエリア ボックスですが、ドロップダウンに到達しても値は変わりません。理由はありますか?

4

2 に答える 2

3

最も簡単な解決策は、テキスト フィールドまたは選択リストが存在するかどうかを if ステートメントでチェックすることです。

div_container = @browser.div(id: "#{idOfStory}_firstCol").div(class: "tDetEntry", index: (i+=1)).div(class: "formLib1")
if div_container.text_field(:id, "input").present?
    div_container.text_field(:id, "input").set(story[i])
elsif  div_container.select_list(:id, "select").present?
    div_container.select_list(:id, "select").select(story[i])
end
sleep 2
@browser.send_keys(:tab)

また、select_lists の場合は、.selectの代わりにする必要があることに注意してください.set

于 2012-09-18T16:15:47.863 に答える
0

必須

storyFields.each_index {|i|
div_container = @browser.div(id: "#{idOfStory}_firstCol").div(class: "tDetEntry", index:     (i+=1)).div(class: "formLib1")
if div_container.text_field(:id, "input").present?
   div_container.text_field(:id, "input").set(story[i])
elsif  div_container.select_list(:id, "select").present?
       div_container.select_list(:id, "select").select(story[i])
end
}

以前の回答はある程度機能しましたが、正しくループしませんでした。

于 2012-09-20T10:24:54.053 に答える