【发布时间】:2020-03-31 04:15:06
【问题描述】:
我正在使用 Selenium 为用 React-Admin 编写的单页 Web 应用程序编写自动化测试。我有一个简单的页面,其中填写了 4 个字段,然后单击提交按钮以保存更改。这会导致创建的项目显示在页面上显示的表格中。
问题是,当 Selenium 脚本到达单击“提交”按钮的部分时,确实会进行保存,但页面不会更改以显示包含新条目的表格。它停留在输入此项目信息的编辑屏幕上/底部有提交按钮。
如果我注释掉关闭浏览器的@AfterTest,我可以看到弹出窗口显示“已添加项目 - 撤消”,这只是一个小吃店样式的弹出窗口,让用户可以选择撤消最终提交之前的更改。我什至可以返回几次并查看新项目的存在 - 所以它确实保存了新项目。
在 Selenium 方面,我做了以下工作。
- 在 submit.click() 之前放一个简单的 Thread.sleep(3000);
- 放置一个 WebDriverWait 条件等待寻找按钮元素 可见
在任何一种情况下,点击提交按钮后页面都不会消失。
如果我只是复制单击按钮的代码行,第二行似乎会使页面按预期消失。
这一切对我来说似乎很奇怪和不一致。在尝试了解 Selenium 中可用的不同等待背后的所有时间/原因/方式方面,我并没有度过一段美妙的时光 - 有点挣扎。
如果有人对单击按钮时页面没有消失的原因有任何想法,但实际操作仍在执行,我很想听听您的想法。
我发现自己觉得我必须让我的代码非常......“不优雅?”当试图让 Selenium 做我想做的事情时。这可能是因为这是一个 React-Admin 站点,在与 DOM 中的元素交互时几乎没有什么可使用的,或者更有可能是我缺乏经验。
任何方向都将不胜感激。
谢谢! 鲍勃
【问题讨论】:
-
请提供您的代码sn-p
标签: selenium selenium-webdriver selenium-chromedriver