【问题标题】:Selenium throws weird error on changing to new tabSelenium 在更改到新标签时抛出奇怪的错误
【发布时间】:2019-10-28 12:16:38
【问题描述】:

我在使用 selenium Web 驱动程序切换选项卡时出现了一个奇怪的错误。 这是引发错误的代码

        var tabs = WebDriver.WindowHandles;
        WebDriver.SwitchTo().Window(tabs[tabs.Count - 1]);

这段代码只是切换到一个新打开的标签。但是使用这个会失败

invalid argument: 'handle' must be a string

(Session info: chrome=75.0.3770.80)

Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11- 
14T08:25:53'

System info: host: 'DESKTOP-9QCDGLU', ip: '10.194.143.155', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_161'

Driver info: driver.version: unknown

传递的值 .Window() 是一个字符串,但错误表明参数无效。

【问题讨论】:

  • WebDriver.switchTo().window(handles[handles.length-1])吗?

标签: selenium selenium-webdriver webdriver


【解决方案1】:

只要您使用 webdriver 打开的同一个窗口,您就不需要切换。重定向后您可以尝试再次切换到窗口。

保存你的窗口句柄:

String myWindowHandle = driver.getWindowHandle();

重定向到你想要的页面,然后使用窗口句柄调用switchTo:

driver.switchTo().window(myWindowHandle );

您的页面是否包含任何框架?也可能是重定向后您不在正确的帧中。

【讨论】:

  • 但是同样的代码可以工作。只有一台机器的代码不起作用
  • 在您的代码(原始海报)中,您将其定义为 var。这是什么语言?
  • @EduCielo 您可能缺少一些库。请记住,您用于 windows 的同一个库在 mac 中无法使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
相关资源
最近更新 更多