2015-06-24 58 views
0

我有這樣一個類:在selenium webdriver ruby​​中可以通過類來獲取元素嗎?

<div class="qa-share-message ng-isolate-scope ng-valid ta-root 
ng-dirty focussed" ng-model="message" text-angular=""> 

我要輸入這個領域。我曾經嘗試這樣做:

driver.find_elements(:class, "qa-share-message").send_keys("This is a test message") 

運行代碼後,它會顯示錯誤:

undefined method `send_keys' for [#<Selenium::WebDriver::Element:0x65990040 id="33">]:Array 

是否有可能通過類來獲取元素?

+0

如果您只查找一個元素,或許您打算使用'find_element'而不是'find_elements'? –

+0

嘗試find_element但注意發生。這行被跳過,代碼的其餘部分被執行。在控制檯中也沒有錯誤。 – Sakib

回答

0

您明顯是得到了元素s按類。看:

undefined method `send_keys' for [# Selenium::WebDriver::Element:0x65990040 id="33"]:Array

錯誤上面清清楚楚地寫着:調用find_elements成功,返回一個Array例如,包含Element秒。你現在需要的一切是要麼send_keys到每個找到的元素:

driver.find_elements(:class, "qa-share-message").each do |e| 
    e.send_keys("This is a test message") 
end 

或將其發送給他們中的一個,例如到第一個:

driver.find_elements(:class, "qa-share-message") 
     .first 
     .send_keys("This is a test message") 
+0

試過你的代碼,但沒有希望。它看起來像這個語句已被跳過,因爲沒有錯誤。 – Sakib

+0

你有沒有問過:「是否有可能通過課堂獲得元素?」上面的答案正確地回答了這個問題。無論您是否有其他問題,請將它們分開發布。 – mudasobwa

相關問題