如何在Selenium中通过WebElement查找WebDriver?

huangapple go评论74阅读模式
英文:

how can i find webdriver via webelement in selenium?

问题

在我的代码中,我有一个对 WebElement 对象的引用,但是没有 WebDriver 对象的引用。有没有办法仅通过一个 WebElement 对象获得对 WebDriver 的引用?

我需要这样做,因为我需要为生成给定的 WebElement 的驱动程序调用一些特定于 WebDriver 的功能。

英文:

In my code I have a reference to WebElement object but I have no reference to WebDriver object. Is there any way obtain a reference to WebDriver having just a WebElement

I need that since I need to invoke some WebDriver-specific functionality for a driver which has produced given WebElement

答案1

得分: 1

通常情况下是没有这种方法的。大多数WebDriver的实现不会在WebElement中公开引用自身的方法。

RemoteWebElement是由许多其他驱动程序扩展的RemoteWebDriver生成的,它在RemoteWebDriver/RemoteWebElement中有受保护的引用,因此有两种方法:

  1. 你可以在测试项目中扩展所有这些实体,并将该字段公开。这需要一定水平的编码技能。。

  2. 你可以像这篇帖子中所示,使用反射方法。

英文:

No. Normally there is no such a way. Most of WebDriver implementations does not put a public reference to itself to WebElement.

RemoteWebElement, which is produced by RemoteWebDriver which a lot of other drivers extend, has protected reference to RemoteWebDriver/RemoteWebElement so there are two ways here:

  1. you can extend all those entities in your test project and expose that field public. This requires certain level of coding skills..

  2. you can use reflection like shown in this post.

huangapple
  • 本文由 发表于 2020年10月2日 21:35:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/64172493.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定