当页面加载时没有输入元素时,如何使用Capybara / SitePrism / Ruby附加文件?

问题描述 投票:0回答:1

我主要使用Ruby,Capybara和SitePrism的测试框架,直到现在我成功地使用了'attach_file(input_element,File.path)'方法。

我现在已经转移到另一个项目,他们已经有了这个页面,其中有一个'上传按钮'但是在第一次加载时页面中没有任何'input'元素(检查源代码,也没有隐藏元素,即,“输入”根本没有出现在页面中。然后发生了什么,当用户点击“上传”按钮时,会出现一个窗口弹出窗口,他们可以选择他们的文件,当他们选择那个时,似乎有一些javascript正在进行(我看到了与之相关的事情) knockout.js,虽然不是100%确定是否被调用了),并且在那一点上,代码在页面中创建了一个全新的“input”元素,最初并不存在。

你知道有没有办法自动化这些旅程?或者这个问题听起来很熟悉,以便我可以研究一下我能做些什么?

谢谢!

ruby capybara site-prism
1个回答
0
投票

如果页面上确实没有input元素(仔细检查,因为如果使用knockout.js则不太可能),并且当用户通过JS单击上传按钮时它会被添加,那么就没有“干净”的方法来测试与Capybara一起。唯一的方法是通过按下按钮确定究竟是什么JS被调用,并使用execute_script调用必要的JS方法来在页面上创建正确的input元素然后附加到它。

© www.soinside.com 2019 - 2024. All rights reserved.