2013-06-05 58 views
1

我想讓WatiN附加到IE彈出窗口(IE 10)。 此彈出框包含一個框架集 - >一個框架 - >一個pdf文檔。 我的目標是將此PDF保存到我的磁盤。Watin AttachTo:在等待框架文檔變爲可用時超時

Dim winExists = IE.Exists(Of IE)(Find.ByUrl(Function(url) url.Contains("__ADFvDlg"))) 
If winExists Then 'this evaluates to true 
    Dim win = IE.AttachTo(Of IE)(Find.ByUrl(Function(url) url.Contains("__ADFvDlg"))) ' Timeout while waiting for frame document becoming available 
End If 

1)我已經使用上述內聯代碼或在STA線程

2)當編碼行內嘗試過,它的父線程也STA

3)我試圖增加默認超時時間爲8分鐘,8分鐘後結果相同

除了分析此特定彈出窗口外,沒有其他選擇,因爲它是使用Oracle ADF構建的網站,除了它是A MESS,有時候很奇怪......這個彈出窗口有一個以某種方式只能工作一次的URL。如果我嘗試在另一個窗口中使用它,則不會返回pdf。當我刷新彈出窗口時會發生同樣的情況。

我無法獲取臨時Internet文件中的PDF,因爲它不存在(我想這是因爲該網站在SSL下工作)。

WatiN的範圍以外的任何指導方針或解決方案都非常值得歡迎,因爲我碰到了一堵磚牆。

技術:VS2012,WPF

非常感謝。

回答

0

我發現它是最簡單的,當我通過將彈出窗口顯示爲一個新選項卡來嘗試相同的事情時。這樣我可以附加到它的URL。從那裏,我會用

File.WriteAllText(fileName, responseDownLoad.Content.ReadAsStringAsync().Result); 

凡responseDownload將是一個HttpResponseMessage