2010-07-15 70 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“,让你知道一切都是活着和健康的,而重定向则是顺其自然的。