2011-07-27 137 views
1

我想在Firefox中構建一個Firefox Webdriver的鼠標:目前爲止沒有成功。硒Webdriver鼠標

@driver = Selenium::WebDriver.for :firefox, :profile => profile 
@mouse = Selenium::WebDriver::Mouse.new(@driver) 
@mouse.click(@driver.find_element :css => 'li:nth-child(1)') 

錯誤的回溯

test_add_course(ItemAutocompleteTest): 
NoMethodError: undefined method 
mouseMoveTo for #<Selenium::WebDriver::Driver:0x7fa66e372b18 browser=:firefox> 
/usr/lib/ruby/gems/1.8/gems/selenium-webdriver-0.2.1/lib/selenium/webdriver/common/mouse.rb:50:in move_to 
/usr/lib/ruby/gems/1.8/gems/selenium-webdriver-0.2.1/lib/selenium/webdriver/common/mouse.rb:60:in move_if_needed 
/usr/lib/ruby/gems/1.8/gems/selenium-webdriver-0.2.1/lib/selenium/webdriver/common/mouse.rb:12:in click 
test/selenium_2/item_autocomplete_test.rb:36:in test_add_course 
mocha (0.9.8) lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in __send__ 
mocha (0.9.8) lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in run 

1 tests, 0 assertions, 0 failures, 1 errors 

在這裏,我找到了類似的問題 https://gist.github.com/967333

謝謝你的任何建議!

+1

你爲什麼這樣做?標準的.click命令無論如何都使用鼠標實現,就像Action實現一樣(儘管我不確定Actions是否已經在Ruby中實現)。鼠標的實現並不是專爲外部使用而設計的。 – Ardesco

+0

我只是想從webdriver所提供的服務中獲益 - 高級用戶交互。假設我需要雙擊該項目。問題是爲什麼鼠標不初始化?謝謝! – Yulia

回答

3

你會注意到Mouse class在文檔中被標記爲私有 - 它不是公共API的一部分。要使用高級的用戶交互,你想在ActionBuilder尋找替代,基本上是:

driver.action.key_down(:shift). 
       click(element). 
       double_click(second_element). 
       key_up(:shift). 
       drag_and_drop(element, third_element). 
       perform 

我將這個增加一個小節的wiki page

+0

這正是我一直在尋找的!感謝您幫助社區! – Yulia

+0

硒是否有能力點擊某些鼠標座標?我需要觸發自動點擊,但我需要在瀏覽器環境之外進行。這是一個非常不尋常的案例。 –

+0

它不支持在瀏覽器之外點擊(目前),不。 – jarib