我正在用Selenium为用React Admin编写的单页web应用程序编写自动化测试。我有一个简单的页面,其中填写了4个字段,然后单击"提交"按钮来保存更改。这将导致创建的项目显示在页面上显示的表格中。
问题是,当Selenium脚本到达单击Submit按钮的部分时,保存确实发生了,但页面不会更改为显示带有新条目的表。它停留在输入该项目信息的"编辑"屏幕上/底部有"提交"按钮。
如果我注释掉关闭浏览器的@AfterTest,我可以看到弹出窗口,上面写着"Item Added-UNDO",这只是一个小吃店风格的弹出窗口,用户可以选择在最终提交之前撤消更改。我甚至可以导航回几次,看到新项目的存在——所以它确实保存了新项目。
在硒方面,我已经做了以下工作。
- 在submit.click((之前放入一个简单的Thread.sleep(3000(
- 放置WebDriverWait条件等待以查找按钮元素可见
无论哪种情况,单击"提交"按钮后,页面仍然不会消失。
如果我只是复制单击按钮的代码行,第二行似乎会使页面如预期的那样消失。
这一切对我来说似乎很奇怪,也很不一致。我一直在努力理解Selenium中不同等待的时间/原因/方式,这有点困难。
如果有人知道为什么点击按钮时页面没有消失,但实际操作仍在执行,我很想听听你的想法。
我发现自己觉得我必须让我的代码变得非常……"不优雅?"当试图让Selenium做我想让它做的事情时。这可能是因为它是一个React Admin网站,在与DOM中的元素交互时几乎没有什么可操作的,或者更可能是因为我缺乏经验。
任何指示都将不胜感激。
谢谢!Bob
这是代码中的一个错误,测试发现了它。
打得好,硒。