簡體   English   中英

Capybara錯誤:Selenium :: WebDriver :: Error :: ElementNotVisibleError:元素不可見

[英]Capybara error: Selenium::WebDriver::Error::ElementNotVisibleError: element not visible

我在我的應用程序中使用Trix WYSIWYG編輯器 對於我的水豚測試:我想填寫編輯器。

我找到了這篇文章: 如何測試basecamp的旅行編輯器......這似乎很有希望。 不幸的是它一直給我這個錯誤:

Selenium :: WebDriver :: Error :: ElementNotVisibleError:元素不可見

所以似乎Capybara找到了元素ok,但它只是沒有與它交互,因為Capybara必須有一些默認設置,不與隱藏/不可見元素交互。

環顧四周之后,我遇到了這個Stackoverflow問題: 是否可以與隱藏元素進行交互

從那篇文章:我已經嘗試過這個:

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

關於如何讓Capybara填寫編輯器的任何想法? 值得一提的是:我使用的是rails 5.1.1chromedriver=2.29.461585

簡答:你不能使用硒

更長的答案:該錯誤是selenium阻止您與不可見元素交互,因為用戶無法單擊或發送鍵到不可見元素。

如果你真的想要改變隱藏元素的值,唯一的方法是通過execute_script使用JS,但很可能不會生成trix期望/使用的事件。 一個更好的解決方案是弄清楚用戶將與哪些可見元素進行交互並直接與它們進行交互。 帶有selenium的Capybara確實支持在可見的contenteditable元素上調用set ,這是trix似乎正在使用的(以及自定義元素),所以類似於

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

可能會為你工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM