Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 硒c“-”;“懒惰”;驱动程序。FindElements(由..)_C#_Selenium Webdriver_Lazy Evaluation - Fatal编程技术网

C# 硒c“-”;“懒惰”;驱动程序。FindElements(由..)

C# 硒c“-”;“懒惰”;驱动程序。FindElements(由..),c#,selenium-webdriver,lazy-evaluation,C#,Selenium Webdriver,Lazy Evaluation,在我试图找到一种简洁的方法,根据用户的角色和权限验证哪些按钮对用户可见的过程中,我遇到了一个问题。我正在使用selenium的页面对象模型设计模式来测试一个网站。一些页面有一组不同的按钮,根据用户的角色,这些按钮应该对用户可见或不可见 我保存了一个字典,并在页面的构造函数中初始化它(类表示站点中的某个页面) 所有web元素的定义如下: private IWebElement btn_openShop => driver.ById("open_shop"); (ById相当于FindsEl

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

我保存了一个
字典
,并在页面的构造函数中初始化它(类表示站点中的某个页面)

所有web元素的定义如下:

private IWebElement btn_openShop => driver.ById("open_shop");
(ById相当于
FindsElement(By.Id(“open\u shop”)

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


注意:移动字典的初始化不会有帮助,因为我测试了两种情况(一种情况下用户应该看到按钮,另一种情况下用户不应该看到按钮)。

我将字典更改为
并添加了如下项目:

dictionary.Add(somePermission,new Lazy<IWebElement>(()=>the button))
dictionary.Add(somePermission,newlazy(()=>按钮))
编辑:这种技术很有效,但在VisualStudio中调试时,代码似乎崩溃了。
有什么想法吗?(在测试执行期间不会引发异常)。

请确保在添加代码时正确设置代码格式,以便更容易识别和阅读。如果需要帮助,在编辑问题时会提供格式帮助。谢谢,我将从下一个问题开始这样做。