【发布时间】:2018-04-05 13:27:22
【问题描述】:
我正在我的自动化框架中实现 Selenium 页面对象模式,并且要再次测试的网站有点不稳定
所以,基本上我想扩展 Selenium FindsBy Class 并为其添加特定属性,这允许多次跟踪 web 元素,直到实际找到它为止..
为了更好地解释它:
[FindsBy(How = How.CssSelector, Using = "li.config-btn button[class *= 'configure icon-settings']")]
private IList<IWebElement> SettingsButton;
在后端,有我的自定义逻辑处理 waitandretry 属性
最合适的做法是什么?
既然 FindsBy 类是密封的,你不能继承它,那么我该如何扩展 FindsBy 功能并实现我的东西?
所以,基本上我需要的是
[FindsByNew(How = How.CssSelector, Using = "li.config-btn button[class *= 'configure icon-settings']", WaitRetry = 3)]
private IList<IWebElement> SettingsButton;
有什么,他们已经在提供而我不知道吗?
提前致谢
【问题讨论】:
-
我没有正确理解要求,但我认为您发布的代码已经被 CSS 选择器处理了。
-
你知道 Selenium 的页面对象模式吗?
-
我知道,但该模型如何影响此实现
-
@ShobhitMaheshwari 不是 C# 用户,但尝试开箱即用的 RetryingElementLocator? seleniumhq.github.io/selenium/docs/api/dotnet/html/…
-
我与 Selenium 合作超过 2 年,但我不知道这个 RetryingElementLocator。我认为这是我在回答中给出的 FluentWait 方法的替代方案,尽管我认为 thisRetryingElementLocator 仅忽略 NoSuchElementException 而不是我添加到流利等待方法中的其他方法。在搜索有关此定位器的更多信息时,我发现了一个包含更多信息的优秀网站:developers.perfectomobile.com/pages/…
标签: c# selenium pageobjects