【发布时间】:2019-07-06 21:00:40
【问题描述】:
我正在尝试使用 selenium webdriver + Java + ngwebdriver 自动化混合 angularjs 2 (2.4.10) Web 应用程序。
通过自动化基本登录脚本来考虑一个简单的案例。 在登录页面中,我使用 sendkeys 填写用户名和密码字段,并使用 .click 方法点击提交按钮,然后我对主页标题进行断言。脚本运行顺利并退出驱动程序实例。
但是当脚本点击提交按钮时,在后端会进行 api 调用并且尚未收到响应。
从前端实现了测试自动化,但用户登录方法没有返回响应。
所以我希望我的 selenium webdriver 脚本等待所有后端 api 请求返回响应。然后转到下一步?可能吗。
【问题讨论】:
-
如果登录成功,下一步是什么,因为在成功登录后,无论活动发生在哪里,我们都必须通过添加隐式或显式等待直到该活动出现
-
隐式等待是加载元素,所以基本上它使脚本等待元素出现/在网页中可见,甚至显式等待元素,即显式等待该元素。但我担心后端 API 调用。
-
如果您知道硒用于 UI 自动化而不是后端 API,但如果响应时间较短,那么您可以使用等待那么多时间来响应并等待下一个元素不是吗。。
-
我很清楚这一点,但我一直在寻找类似在网络日志模式下运行/初始化浏览器/浏览器驱动程序并自动捕获这些请求并让我的脚本等待 API 响应和然后 selenium webdriver 进入下一步。这就是我要找的。span>
-
我相信您是在要求等待浏览器的 xhr 请求,对吧?一旦加载了所有“静态”元素——页面的结构、布局、导航,应用程序向 BE 发送请求以获取一些数据;当 xhr req 收到响应时,该数据将被注入并在页面中可视化 - 如果我正确理解您的问题,您希望此过程在继续之前完成。
标签: java selenium selenium-webdriver