2014-12-31 57 views
2

我有一個測試,我需要使用操作點擊。我不能直接單擊我需要的元素,因爲它是:: before元素,而它之前的元素是0x14,因此它不可交互。我直接使用watir-webdriver而不是硒,這就是爲什麼使用wd。它訪問Selenium的對象而不是Watir的對象。Selenium ActionDriver.click不工作在Firefox

我有一個元素,我打算使用父級來找到我需要點擊的位置。

$browser.wd.action 
    .move_to(element.parent.wd) 
    .move_by(12, 0) 
    .click 
    .perform 

這段代碼在Chrome中工作正常,但沒有任何東西在Firefox中被點擊。兩個縮放都設置爲100%。相對於父項,我需要單擊的對象位於相同的位置。

我不知道在哪裏看。

我已經嘗試過這樣的:硒2.42在Firefox 29和硒2.44火狐提前34

感謝。

UPDATE


我已經降級爲FF 31.1.1和改變了我的驅動程序安裝程序中包含的本地事件:

if $BROWSER == :firefox 
    profile = Selenium::WebDriver::Firefox::Profile.new 
    profile.native_events = true 
    return Watir::Browser.new $BROWSER, profile: profile 
else 
    return Watir::Browser.new $BROWSER 
end 

與點擊沒有運氣。

我在網站上試着看到鼠標移動並點擊:http://www.escapemotions.com/experiments/flame/。這是一個交互式繪圖程序。鼠標移動得很好,click_and_hold似乎工作,drag_and_drop_by也能正常工作。點擊時我遇到了麻煩。

鏈接click_and_hold.release的作品。我將提交2.44的缺陷。

+0

請檢查是否本地事件爲Firefox啓用?還可以嘗試使用Selenium 2.44的Firefox 32或33(在此版本中,Firefox 34不支持本機事件支持) – Surya

回答

0

似乎是一個缺陷。作爲一項圍繞click_and_hold的工作,發佈可以鏈接模擬點擊。

driver.action.click_and_hold.release.perform 

缺陷記錄:https://code.google.com/p/selenium/issues/detail?id=8353

+0

我看了一下您在提交bug報告時使用的腳本。如果將'sleep 1'增加到更長的值(例如'sleep 5'),它的行爲是否與您期望的相同?如果是的話,我已經爲你解釋了。 (我不能輕易地測試它,因爲我不使用Ruby。) – Louis

+0

睡眠的增加不會改變行爲。 – TIMBERings

+0

那麼,我不知道那裏發生了什麼。在我的系統上,並將腳本轉換爲Python,我可以通過混淆sleep(睡眠1)行中的睡眠時間來重現您的問題。更長的睡眠時間使問題消失。 – Louis