我已被分配創建一種'web爬行者'。任務是在某些網站上輸入一段數據,然後提交該數據以獲得結果。WatiN - 等待Cookies
我發現WatiN是獲取這些數據的好工具,因爲它是開源的,並且具有我需要的所有功能 - 即使這是濫用測試API(是否濫用?)。
反正 - 真正的問題是什麼,就是
Browser.WaitForComplete();
不等待一切加載。它似乎只是等待最後的body
標籤然後返回。不過,我相信當頁面加載完成時不會生成cookie,因爲它是由ASP.NET後端生成的 - 它似乎加載了一個交互式對象,看起來像AJAX或沿着它們的線。
我不擁有或託管網站,因此只能根據我從瀏覽器和其他工具看到的信息收集信息。
有沒有辦法讓WatiN等待cookie被更新?
謝謝先進。
John。
編輯:
正如我在做固定在一分鐘的問題是什麼一個例子(這是一個有點非正統的,但它是固定它的分鐘)。
Browser.WaitForComplete();
Browser.WaitForComplete();
Browser.WaitForComplete();
Browser.WaitForComplete();
Browser.WaitForComplete();
Browser.WaitForComplete();
Browser.WaitForComplete();
Browser.WaitForComplete();
var cookie = Browser.Eval("document.cookie");
現在你可以理解爲什麼我想找到一個真正的解決方案。
感謝
事實上,這是我原來的一種方式。 不過,我發現,即使清除Cookie,然後該網頁將加載是徒勞的頁面,似乎產生例如餅乾模板: 「cookieData = 6&cookieData2 = 6」 話,好像餅乾後改變他們已經被創造了。 'cookieData = 4&cookieData2 = 1' 我希望有更準確的方法,謝謝。感謝您的反饋,但非常感謝! – 2011-02-27 15:26:30
如果您無法判斷cookie是否「更新」,那麼您可以做的最好的決定是您準備等待多長時間,然後等待那麼久。它不可靠,但我看不到任何其他方式。 – 2011-02-27 15:34:58
這就是說 - 如果你在你打電話的網頁上打個招呼,你可能會注入一些javascript,並在它「完成」時通知你,這取決於它的工作原理 – 2011-02-27 15:35:28