作者:cang桑哥哥 | 来源:互联网 | 2023-09-18 05:05
单击按钮后,测试用例失败,但未找到链接或任何验证消息。
我使用显式等待页面加载:
_C
对于等待验证消息的特定div:
_U
但是测试用例有时会通过管道通过,有时会失败。
您需要注意以下几点:
-
在单击按钮后没有找到链接或任何验证消息的情况下,测试用例失败:很大程度上取决于 button 的属性。如果 button 包含以下任一属性/事件,DOM Tree将得到更新,随后尝试找到所需的元素可能会失败:
-
ExecuteScript("return document.readyState").Equals("complete")
:此代码行不能有效确保所需元素是否存在 / 可见 / HTML DOM中的>可交互。
- 您可以在Do we have any generic function to check if page has completely loaded in Selenium
中找到相关的讨论
- 但是用
ElementExists()
等待特定的div 应该是可行的。相关的HTML可以帮助我们分析出了什么问题。但是,如果与 validationErrors 相关的元素基于 HTML5 Constraint validation,则必须使用GetAttribute()方法。
- 您可以在How to handle html5 constraint validation pop-up using Selenium?
中找到相关的讨论
,
我建议以下内容:
- 一旦测试失败,请立即进行快照。
有时当您在本地运行测试时,网络通信
比在服务器上运行快一点。这表示微调器或
加载控件可能不在本地显示,因为已检索到结果
速度足够快,但如果从
服务器将响应发送给客户端。
- 如果您尝试在FF上无头运行FF的测试
设置,然后根据我的经验还不稳定。
- 在经常失败的失败场景中确定模式
尝试使其循环运行多次,并确定
失败。在我的一个案例中,性能中存在实际错误
测试时曾经被复制的应用程序
立即批量运行
,
我遇到了这个问题,除了我的测试在Azure Pipelines中总是会失败,但会在本地通过。不以“无头”模式运行解决了我的问题。为此,请确保在“ Visual Studio测试”任务中选中了“测试混合包含UI测试”。