2011-09-19 50 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(「你的新窗口網址」);並繼續進行該頁面中的其他操作。