2010-07-15 69 views

回答

4

似乎有一個從默認主頁面重定向到您的網站form.aspx。我認爲WebDriver捕獲完成加載主頁然後重定向到表單,但WebDriver沒有捕獲到這一點。

我認爲,你可以開始尋找元素之前引入的延遲,也可以使用PageFactory與AjaxElementLocatorFactory,這將使你的驅動等到管制真的會出現,但我不知道它是否適用於C#

1

我也有這個問題,這是由於重定向,並且waitFor *命令不太適合重定向。它永遠不會等待2頁(這是我們在這裏所需要的),但是如果你連續兩次等待(這在理論上是正確的事情),通常第二個會掛起。它似乎是一種競爭條件,因爲它是不可預知的,90%的時間似乎掛起

所以我做的只是旋轉循環,直到我看到頁面上的一些信號後,重定向預計會看到。您也可以將信號作爲您正在尋找實際測試的控件。我的解決方案,PERL的短塊,我敢肯定,你可以轉化爲C#:

$sel->open('/some/page/that/will/redirect/us'); 
$sel->wait_for_page_to_load("30000"); #wait for the redirect to hit 
do {  
    $sel->pause(50); #now spin while we're in no-mans land 

    #until you spot what you need: 
    last if $sel->is_text_present('This is the Real Home Page'); 
} while(1); 

#carry on.... redirect is completed and page is loaded 

的這種快樂的好處是,命令歷史記錄計數的「相同的命令(99ms)的毫秒: xyz「,讓你知道一切都是活着和健康的,而重定向則是順其自然的。