0

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

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

你知道是否有办法使这些旅程自动化吗?还是这个问题听起来很熟悉,以便我可以研究我能做些什么?

谢谢!

4

1 回答 1

0

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

于 2017-12-20T18:37:52.173 回答