2
<a href="/app1/data/r.doc">  foo    </a>
<a href="/app2/data/r.doc">  boo    </a>
<a href="/app3/data/r.doc">  loo    </a>
<a href="/app3/data/r.doc">  goo    </a>

以下htmlの部分から、最後から3番目を見つける必要がtextあります...アクセスするには、以下のコードを記述しました(used selenium-webdriver):

all_links=driver.find_elements :tag_name, "a"

all_links.each do|link|

puts link.attribute("href")
puts link.text()

end

では、 ?booを使用して最後から3番目の値を取得する方法を教えてください。selenium-webdriver上記のように最後から3番目fooに100個以上ある可能性があると言っています。

何かアドバイスはありますか?

4

2 に答える 2

3

負のインデックスを持つ配列の最後から3番目の要素を取得できます。

array = [:foo, :bar, :baz, :qux]
array[-3] # => :bar

だからあなたの場合

all_links = driver.find_elements(:tag_name, "a")
all_links[-3].text.strip # => "boo"

text代わりにメソッドを使用できることに注意してくださいattribute("text")

于 2013-01-23T22:47:10.377 に答える
0

私は以下のような1つの解決策を見つけました:

all_links=driver.find_elements :tag_name, "a"

@linkscollection = Hash.new

all_links.each do|link|

text = link.attribute("text").strip
href = link.attribute("href").strip
@linkscollection[text]=href

end

#puts @linkscollection.length
print @linkscollection.keys[1] #=>boo
于 2013-01-23T19:02:51.017 に答える