Selenium"lazy"驱动程序。查找元素(按..)



在我试图找到一种巧妙的方法来根据用户的角色和权限验证哪些按钮对用户可见的过程中,我遇到了一个问题。我正在使用带有硒的页面对象模型设计模式来测试网站。一些页面具有一组不同的按钮,根据用户的角色,这些按钮应该对用户可见或不可见。

我保留一个Dictionary<Permission,IWebElement>并在页面的构造函数(表示站点中某个页面的类)中初始化它。

所有 Web 元素定义如下:

private IWebElement btn_openShop => driver.ById("open_shop");

(ById 相当于FindsElement(By.Id("open_shop"))

问题是,如果按钮不应该存在,则在将其添加到字典时会引发异常。

注意:移动字典的初始化无济于事,因为我测试了这两种情况(一种用户应该看到按钮,另一种不应该看到)。

我将字典更改为类型<Permission,Lazy<IWebElement>>并添加了如下项目:

dictionary.Add(somePermission,new Lazy<IWebElement>(()=>the button))

编辑:这种技术有效,但似乎在Visual Studio中调试时代码崩溃。 有什么想法吗?(在测试执行期间不会引发异常)。

最新更新