【问题标题】:Switching to empty window handle (Selenium webdriver)切换到空窗口句柄(Selenium webdriver)
【发布时间】:2013-11-08 09:34:58
【问题描述】:

我有这个窗口句柄的问题。我单击一个按钮并希望出现一个弹出窗口,但我不确定它是否会弹出。我在切换之前打印出所有窗口句柄 [u'{7f8728c1-75db-4899-b4d1-63af134ee2fc}', u'']。在这种情况下,我切换到表示 u'' 的列表 [-1]。切换后我打印出当前窗口句柄,我得到答案 {7f8728c1-75db-4899-b4d1-63af134ee2fc}

这里有两个问题: 1-什么是空窗口句柄u''? 2- 我切换到 u'' 失败并切换回主窗口还是 selenium 无法切换到空句柄并选择切换到主窗口?

提前致谢

【问题讨论】:

  • 请添加截图。
  • 截图没有任何帮助

标签: selenium webdriver selenium-webdriver


【解决方案1】:

也许是警报?

driver.getWindowHandles() - 打印在此会话中启用的所有窗口,如果只有 1 个字符串 '{7f8728c1-75db-4899-b4d1-63af134ee2fc} 那么这是您当前的窗口并且没有更多的窗口。试试driver.switchTo().alert().accept();

【讨论】:

  • 所以你''实际上是一个警报?实际上有两个字符串,一个是你提到的字符串,一个是空字符串 u' ',我指定列表中要切换到的最后一个句柄,在这种情况下是 u' ' 如果我添加睡眠,我不会再看到这个问题了
  • 当它打开窗口时添加 Thread.Sleep(5000) 5 秒并打印出 driver.getWindowHandles(),问题是我从未见过空的窗口字符串)
  • 你知道空字符串可能是什么吗?我不想通过睡眠来解决这个问题,因为我想优化我的测试脚本。我每晚会进行 1000 多次窗口切换,如果增加 5 秒睡眠时间会减慢我的测试速度。
  • 我不知道,抱歉。添加你的桌面截图,这会有所帮助