2017-06-08 83 views
3

我在我的應用程序中使用Trix WYSIWYG editor。對於我的水豚測試:我想填寫編輯。水豚錯誤:Selenium :: WebDriver :: Error :: ElementNotVisibleError:元素不可見

我發現文章:How to test basecamp's trip editor...看起來很有前途。不幸的是它不斷給我這個錯誤:

Selenium::WebDriver::Error::ElementNotVisibleError: element not visible

這樣看來,水豚是找到元素確定,但它只是不與它進行交互,因爲水豚必須有一些默認設置不與隱藏/不可見元素進行交互。

環顧四周後,我遇到了這個Stackoverflow問題:Is it possible to interact with hidden elements with capybara

從那個帖子:我已經嘗試過這樣的:

def fill_in_trix_editor(id, value) 
    Capybara.ignore_hidden_elements = false 
    find(:xpath, "//*[@id='#{id}']").set(value) 
    Capybara.ignore_hidden_elements = true 
end 

除了這一點:

def fill_in_trix_editor(id, value) 
    find(:xpath, "//*[@id='#{id}']", visible: false).set(value) 
end 

任何想法,我怎麼能得到水豚,以填補在編輯器?對於什麼是值得:我使用rails 5.1.1chromedriver=2.29.461585

+0

如何給用戶一個互動合作隱藏的元素?你的規格測試是什麼?它應該運行所需的任何代碼,使該元素可見,即用戶爲了使其可見而做的任何操作 – DiegoSalazar

+0

@DiegoSalazar我更新了我的問題。最終,我試圖找出如何填寫與水豚編輯。我正在往下走的道路看起來好像不可能直接填寫編輯,所以唯一的選擇是讓水豚填充隱藏的元素。我現在正在爲托馬斯的答案努力工作。 – Neil

回答

3

簡短的回答:你可以不使用硒

較長的答案:這錯誤是硒阻止你用不可見的元素進行交互,因爲會有沒有辦法使用戶單擊或將密鑰發送給不可見的元素。

如果你真的想改變一個隱藏元素的值,唯一的方法是通過execute_script使用JS,但最有可能不會生成trix期望/使用的事件。一個更好的解決方案是找出用戶可以直接與之交互並與之交互的可見元素。水豚硒不支持調用上可見CONTENTEDITABLE元素set這是什麼TRIX似乎使用(自定義元素)所以像

find(:css, 'trix-editor').set("New text") 

可能會爲你

+0

謝謝我會嘗試。 – Neil

相關問題