从IWebElement获取By定位器
本文关键字:定位器 By 获取 IWebElement | 更新日期: 2023-09-27 18:16:33
是否有任何方法将By定位器从当前正在使用的IWebElement中拉出来?
我不知道有什么内置的方法可以做到这一点,但这可以使用具有事件成员OnFindElementCompleted
的EventFiringWebDriver
类来实现。该事件有一个类型为FindElementEventArgs
的参数,它暴露了一个类型为By
的FindMethod
成员,为您提供了您所需要的-您在调用FindElement
时使用的By
参数。
订阅OnFindElementCompleted
时,可以捕获FindElementEventArgs.FindMethod
值并将其存储在静态字典中。
奇怪的是,FindElementEventArgs
类型没有成员来表示被找到的元素,所以要获得相关的元素,你必须做一点hack,包括使用FindElementEventArgs
的Element
成员来执行相同的搜索。你可能会遇到一些循环事件的问题,你可以通过将FindElementEventArgs.Driver
转换为EventFiringWebDriver
并在ParentDriver
属性上搜索来规避这些问题。
对不起,我不能给你一个更完整的解决方案,我在床上做这个在手机上!