-4

为“FindElemebtByID”按 click() 后出现异常。我得到这个例外:

错误 CS1061“ReadOnlyCollection”不包含“Click”的定义,并且找不到接受“ReadOnlyCollection”类型的第一个参数的可访问扩展方法“Click”(您是否缺少 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();

谢谢

4

1 回答 1

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();
于 2019-08-01T07:09:09.323 回答