从IWebElement获取By定位器

本文关键字:定位器 By 获取 IWebElement | 更新日期: 2023-09-27 18:16:33

是否有任何方法将By定位器从当前正在使用的IWebElement中拉出来?

从IWebElement获取By定位器

我不知道有什么内置的方法可以做到这一点,但这可以使用具有事件成员OnFindElementCompletedEventFiringWebDriver类来实现。该事件有一个类型为FindElementEventArgs的参数,它暴露了一个类型为ByFindMethod成员,为您提供了您所需要的-您在调用FindElement时使用的By参数。

订阅OnFindElementCompleted时,可以捕获FindElementEventArgs.FindMethod值并将其存储在静态字典中。

奇怪的是,FindElementEventArgs类型没有成员来表示被找到的元素,所以要获得相关的元素,你必须做一点hack,包括使用FindElementEventArgsElement成员来执行相同的搜索。你可能会遇到一些循环事件的问题,你可以通过将FindElementEventArgs.Driver转换为EventFiringWebDriver并在ParentDriver属性上搜索来规避这些问题。

对不起,我不能给你一个更完整的解决方案,我在床上做这个在手机上!