2016-11-04 57 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屬性來規避您可能會遇到的問題。

對不起,我不能給你一個更全面的解決方案,我在牀上,並在手機上這樣做!