2016-11-04 65 views
0

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

+2

不,没有属性保留FindElement中用于元素对象的By参数。不过,这真是一个有趣的问题,我对你的用例感到好奇。 – jibbs

+0

我有一个小希望吉姆埃文斯会让我们吃惊! – Ben

回答

0

我不知道这样做的内置方式,但这可以使用EventFiringWebDriver类来实现,该类有一个事件成员OnFindElementCompleted。该事件的参数类型为FindElementEventArgs,该参数显示FindMethod类型为By的成员,可为您提供所需的数据 - 您拨打FindElement时使用的By参数。

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

奇怪的FindElementEventArgs类型没有成员表示,发现该元素,因此要获得相关的元素,你将不得不做一些使用FindElementEventArgsElement成员来执行相同的搜索涉及黑客攻击。您可能会遇到一些循环事件问题,您可以通过将FindElementEventArgs.Driver转换为EventFiringWebDriver并搜索ParentDriver属性来规避您可能会遇到的问题。

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