按下click()作为“ FindElementByID”后,出现异常

时间:2019-08-01 06:14:37

标签: c# winappdriver

在为“ FindElemebtByID”按下click()之后,出现异常。我收到此异常:

  

错误CS1061'ReadOnlyCollection'不包含'Click'的定义,并且找不到可访问的扩展方法'Click'接受类型为'ReadOnlyCollection'的第一个参数(您是否缺少using指令或程序集引用?)

我的代码是:

var EQ = DesktopSession.FindElementByName(@"C:\Users");
var EQWindowHandle = EQ.GetAttribute("NativeWindowHandle");

EQWindowHandle = (int.Parse(EQWindowHandle)).ToString("x");    
EQWindowHandle = "0x" + EQWindowHandle;

DesiredCapabilities EQcapabilities = new DesiredCapabilities();
EQcapabilities.SetCapability("appTopLevelWindow", EQWindowHandle);

var EQSession = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), EQcapabilities);

EQSession.FindElementsById("7.8556.12446183").Click();

谢谢

1 个答案:

答案 0 :(得分:1)

FindElementsById返回一个ReadOnlyCollection

您需要从集合中选择相关项目,然后才能尝试调用click。

这将获取返回的第一项,然后单击它。

var elements = EQSession.FindElementsById("7.8556.12446183");

var element = elements.FirstOrDefault();

if (null != element)
    element.click();

或者,如果您始终确保ID为7.8556.12446183的元素只有一个,或者您要与ID一起使用第一个元素(实际上不应超过一个) ),则可以使用FindElementById代替,如下所示。

var element = EQSession.FindElementById("7.8556.12446183");

if (null != element)
    element.click();