2

我在 Windows 7 中使用 Selenium 2.32、Java JDK 1.6.0_07、IE9。这是问题所在

  1. 当我使用 IE WebDriver 32 位并单击打开包含 PDF 的新浏览器的链接时,PDF 会在浏览器本身中打开,这很好,但是当我使用 driver.getWindowHandles() 时无法识别新浏览器。它总是只返回父窗口。当我在 IE8 中使用相同的代码时,它工作得非常好,并且我能够获取新浏览器的 URL。

  2. 我想既然是 Windows 7 和 IE9,我应该使用 IE Webdriver 64 位,所以我使用了 IE Webdriver 版本 2.32.3(64 位)。使用此网络驱动程序,当我单击链接时,会弹出新的浏览器,但 PDF 并未在浏览器中打开,而是作为单独的 PDF 文件打开。即使在这种情况下,新浏览器也不会被识别,并且 driver.getWindowHandles() 只返回一个浏览器。

driver.getWindowHandles() 不仅不返回 PDF 浏览器,还返回普通浏览器

我正在等待 10 秒等待新浏览器加载,因此没有加载/同步问题。我想识别新浏览器并获取新浏览器的 URL。请帮忙。

4

2 回答 2

0

这里的问题是你把事情弄得太复杂了。从您的评论来看,您似乎并没有以“典型”和“推荐”的方式做事。如果您遵循建议,那么您将采用稍微困难的路线。我的建议仍然是进一步简化。

如果我猜测您的问题:我注意到您说您正在使用“IEDriverServer”。这告诉我您可能不正确地使用 WebDriver。当您使用 Grid Hub 和单独的 Grid 节点时(有关示例启动说明,请参阅我的链接:https : //gist.github.com/djangofan/5174433),那么您应该调用 RemoteWebDriver 而不是 WebDriver,就像这样(或相似的):

WebDriver driver = new RemoteWebDriver (
     new URL("http://localhost:4444/wd/hub"), 
     DesiredCapabilities.firefox()
);
driver.get("http://www.google.com");
于 2013-06-04T15:43:47.033 回答
0

这对我有用:根本原因:在 Windows Vista 或 Windows 7 上的 IE 7 或更高版本上,您必须将每个区域的保护模式设置设置为相同的值。该值可以打开或关闭,只要每个区域都相同。要设置保护模式设置,请从“工具”菜单中选择“Internet 选项...”,然后单击“安全”选项卡。对于每个区域,标签底部都会有一个标记为“启用保护模式”的复选框。

希望对你有效。

于 2013-09-19T06:18:10.513 回答