2011-09-19 48 views
0

在我的硒脚本中,我单击一个链接(即在框架内或生成的内容,以便通过源搜索不会返回它),这会将我发送给重定向站点或是下载PDF的捷径。单击此链接时,pdf将显示在新窗口中。不幸的是,SeleniumRC无法检测到新窗口,即使我使用“wait_for_pop_up”(我使用Python btw,如果它很重要)。点击链接后,Selenium将无法检测到新窗口

WebDriver可以检测到新窗口,所以为了解决这个问题,我一直在使用SeleniumRC和WebDriver的组合,但它很麻烦(WebDriver,因为我使用它,而不是组合),它是不能容忍的。我宁愿使用SeleniumRC。

我怎样才能让SeleniumRC检测到这个窗口?

编辑:让我澄清这个问题:当我告诉它去获得窗口id(window_handles在python中),我想要的窗口甚至不会出现,就好像SeleniumRC不知道它存在一样。 WebDriver可以找到它,并给它一个ID,所以我不知道这是怎么回事。

一个更多的细节:与pdf的新窗口有一个不同的(镜像)域名,这可能是一个问题?

回答

1

关于如何在硒中使用多个窗口heregood tutorial。也许而不是waitForPopup,你可以引入手动等待一段时间(比如2秒),然后使用selectWindow来选择新窗口。

+0

我澄清了我的问题。最大的问题是,我甚至找不到新窗口的ID;它只是不会出现与sel.window_handles命令(相当于java selenium.getWindowIDs()或类似的东西) –

+0

即使你手动等待? –

+0

是的,无论如何它都无法正常工作。我确实设法从我之前忽略的一些javascript中提取感兴趣的URL。 –

0

您可以通过再次使用硒打开该窗口来控制新窗口。 即点击打开它后,手动获取新窗口的URL,然后使用selenium.open(“你的新窗口网址”);并继续进行该页面中的其他操作。