【发布时间】:2015-08-08 02:43:01
【问题描述】:
我正在使用 Cucumber、Selenium 和 Xunit 为旧版 ASP.Net 应用程序编写一些 BDD 测试。页面的设计方式,每次“点击”都会导致从服务器获取一个新页面。如果我必须对特定页面进行自动化测试,我是否应该在每次“点击”后有类似以下的一行?
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));
wait.Until(...); //Wait until something about the page is true
我不确定 Selenium 是否会隐式等待页面加载,而无需我一直明确说明这一点。处理这种情况的推荐模式是什么?
总是有“一些元素”的想法很麻烦,这样我就可以把它放在Until 方法中,这会导致脆弱的测试。 ASP.Net 页面充斥着大量动态控件和大量页面刷新,这使得测试代码非常难以阅读。
我提出的解决方案: 编写一个扩展方法来隐式地等待,并接受一个元素 ID 的参数来等待。但我只是将上述问题重构为更易于管理的地方。我仍然等待被明确执行。有没有办法消除它? selenium 是否有一些明显的默认值可以在不需要这种扩展方法的情况下处理这种情况,或者这真的是一种自然的方式吗?
【问题讨论】:
标签: asp.net selenium selenium-webdriver bdd specflow