Selenium::WebDriver::Error::ElementNotVisibleError: element not interactable

Selenium::WebDriver::Error::ElementNotVisibleError: element not interactable

我需要在我的验收测试中 select 一种颜色。隐藏的颜色字段用 jquery-minicolors@2.1.10 渲染。我使用以下代码设置颜色:

find('#colour', visible: false).set('#fefacb')

我使用 capybara (3.11.1)selenium-webdriver (3.141.0)ChromeDriver 2.44.609545 (c2f88692e98ce7233d2df7c724465ecacfe74df5)。我 运行 无头模式下的测试

但是我的测试失败了:

element not interactable
  (Session info: chrome=70.0.3538.110)
  (Driver info: chromedriver=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052),platform=Mac OS X 10.14.1 x86_64) (Selenium::WebDriver::Error::ElementNotVisibleError)

我的代码有什么问题?我该如何解决?

就像用户无法进行的操作一样,您不能与不可见的字段进行交互(设置、单击等)。相反,您需要与 jquery-minicolors 创建的页面上的可见元素进行交互——这些元素是什么完全取决于您如何配置 jquery-minicolors 但通过检查页面应该相对明显。