2013-01-23 60 views
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):那麼現在如何獲得如何使用selenium-webdriver獲得第三個值boo?

all_links=driver.find_elements :tag_name, "a" 

all_links.each do|link| 

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

end 

第三個值boo使用selenium-webdriver?我在上面告訴第三個foo可能還有100個以上。

有什麼建議嗎?

回答

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")

+0

Wooooooooooowwwwww !!完美'+ 1'給你,並接受!' – DoLoveSky

0

我找到了一個解決方案如下:

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 
相關問題