【问题标题】:getWindowHandle function doesn't exist for driver in SeleniumSelenium 中的驱动程序不存在 getWindowHandle 函数
【发布时间】:2013-03-23 08:23:20
【问题描述】:

我需要在 IE 中实现从一个窗口切换到另一个窗口。但是元素驱动不支持getWindowHandle函数。

我认为这可能只是配置问题或设置,虽然我不知道如何解决它。

请给点建议。

我正在使用 c# - Visual Studio

【问题讨论】:

  • 什么版本的网络驱动程序? IE?不支持是什么意思?
  • 我使用的是 IE8,webdriver 版本 2.31.0.0 我在 SetUp() 中通过这种方式初始化了驱动程序: IWebDriver driver = new InternetExplorerDriver();但是,当我尝试从驱动程序实例调用 getWindowHandle() 时,我在列表中看不到 getWindowHandle() 函数。

标签: function testing selenium automation selenium-webdriver


【解决方案1】:

我要大胆猜测:

尝试像这样初始化你的驱动程序:

 WebDriver driver = new FirefoxDriver(); //assume you use firefox

接口WebDriver 支持该方法。不要忘记将手柄存放在某处;)

String myWindow = driver.getWindowHandle();

顺便说一句,该方法应该返回您实际窗口如果您需要所有窗口,您可能应该使用getWindowHandles() 方法

如果这不起作用,请提供更多信息:

  • 究竟你遇到了什么错误?
  • 如何初始化 WebDriver?
  • 您使用的是什么版本的 selenium?|
  • 您使用的是什么类型的驱动程序?

【讨论】:

  • 不幸的是,这种方式也不起作用。如果我初始化 webdriver 以使用 FF,它仍然不能提供我需要的功能。
  • 查看 JimEvans 的回复 - 顺便说一句,下次最好说出您使用的是哪种语言,这样我就不必做出如此疯狂的猜测
  • 好的,当然,我会的。谢谢!
【解决方案2】:

您尚未说明您使用的是哪种语言绑定,但根据您发布的评论,您似乎使用的是 C#。每种语言绑定的方法名称略有不同。来自this answer

.NET 语言绑定中的对象、方法和属性名称 不完全对应于 Java 绑定中的那些。中的一个 该项目的原则是每个语言绑定应该“感觉 自然”对于那些使用该语言进行舒适编码的人来说。

因此,如果您尝试复制粘贴 Java 代码,则必须进行一些翻译。在这种情况下,您需要WindowHandles 属性(以查找新窗口句柄)和驱动程序的CurrentWindowHandle 属性的组合。您可以在项目的Google code site 找到完整的API documentation for the .NET bindings

【讨论】:

  • 吉姆埃文斯姆,非常感谢!看来你是对的。我会尝试用 WindowHandles 和 CurrentWindowHandle 来处理它
  • 如果您能将此答案标记为正确答案,那就太好了。
  • JimEvans,我可以使用类似的方法吗? stackoverflow.com/questions/11237357/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 2017-04-08
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-28
  • 2019-10-04
相关资源
最近更新 更多