在为“ 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();
谢谢
答案 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();