我努力寻找一种巧妙的方法来验证哪些按钮对用户可见,这是基于他的角色和权限我遇到了问题。我正在使用带有selenium的Page Object Model设计模式来测试网站。一些页面具有不同的按钮组,根据他的角色,这些按钮应该对用户可见或不可见。
我保留Dictionary<Permission,IWebElement>
并在页面的构造函数中初始化它(表示站点中某个页面的类)。
所有网页元素的定义如下:
private IWebElement btn_openShop => driver.ById("open_shop");
(ById相当于FindsElement(By.Id("open_shop")
)
问题是,如果该按钮不存在,则在将其添加到词典时会抛出异常。
注意:移动字典的初始化不会有帮助,因为我测试了两种情况(用户应该看到按钮的情况和不应该看到按钮的情况)。
答案 0 :(得分:0)
我将词典更改为<Permission,Lazy<IWebElement>>
类型
并按如下方式添加项目:
dictionary.Add(somePermission,new Lazy<IWebElement>(()=>the button))
编辑:这种技术有效,但似乎在Visual Studio中进行调试时代码崩溃了。 有什么想法吗? (在测试执行期间不会抛出异常)。