无法使用 capybara_webkit 驱动程序附加文件,但我可以使用 selenium 驱动程序

Can't attach files with capybara_webkit driver, but i can with selenium driver

我正在尝试将一些文件附加到输入区域

 page.attach_file('image', File.absolute_path('../pictures/picture.JPG'))

当我使用 Capybara.javascript_driver = :selenium 时一切正常,但我只使用 selenium 来了解结果。我需要使用 Capybara.javascript_driver = :webkit,当我这样做时,出现错误

Failure/Error: page.attach_file('image', File.absolute_path('../pictures/picture.JPG')) 

 Capybara::Webkit::ClickFailed:
   Failed to click element /html/body/div[2]... because of overlapping element /html/body/div[2]...div[3]/em at position 255, 653; 

这个重叠元素是否有特定原因导致测试仅在 capybara_webkit 时失败?

Is there a specific reason this overlapping element is making the test fails only with capybara_webkit?

是的,capybara-webkit 只是更诚实。它允许您只与真正可见的元素进行交互。您的文件输入似乎不可见或隐藏,可能只有一部分被隐藏。

测试中通常的解决方案只是使其(元素)可见,例如通过评估 javascript 并更新此 HTML 元素的 css 属性。