Selenium RC/Python/JavaScript.aspx/Loop语句

Selenium RC/Python/JavaScript.aspx/Loop语句,javascript,python,selenium,selenium-rc,Javascript,Python,Selenium,Selenium Rc,在过去的几个月里,我一直在自学Python。我的第一个项目是一个使用Selenium RC web驱动框架的浏览器驱动程序测试用例(但不要在我的项目中导入web驱动程序,以免混淆)。基本上,我的测试用例需要挂接到用JavaScript和HTML编写的“.aspx”页面的刷新循环中。此循环不断刷新此.aspx页面,直到满足sel.is\u text\u present(“foo”)条件。刷新后,直到定义的“文本”出现,脚本应单击一个JavaScript按钮,该按钮与is_text_present字

在过去的几个月里,我一直在自学Python。我的第一个项目是一个使用Selenium RC web驱动框架的浏览器驱动程序测试用例(但不要在我的项目中导入web驱动程序,以免混淆)。基本上,我的测试用例需要挂接到用JavaScript和HTML编写的“.aspx”页面的刷新循环中。此循环不断刷新此
.aspx
页面,直到满足
sel.is\u text\u present(“foo”)
条件。刷新后,直到定义的“文本”出现,脚本应
单击
一个JavaScript按钮,该按钮与
is_text_present
字符串一起出现。在执行脚本时,Firefox打开并指向特定页面并进入其
刷新循环
,但当文本出现时(即
.aspx
页面更改其状态并加载带有JavaScript按钮的JavaScript表),脚本不会执行循环的另一个分支。下面是一段代码,显示了我实现的逻辑:

i = sel.is_text_present("Schedule")    #text that the test case is 'waiting' for
while i != True:
    print i
    print "Waiting for job..."
    sel.refresh()
else:                
    print "Job found..."
    sel.click("id=Select")
    sel.wait_for_page_to_load("30000")
    sel.click("id=1")
    sel.wait_for_page_to_load("30000")
    print "Success!"
    test_py_s_f_t_c()    #calls this function again to repeat the test case

我的循环语句的逻辑是否指示Firefox刷新,直到它检测到一个文本字符串,然后在检测到该字符串时单击按钮?如果按钮的名称是动态的并且发生了更改,那么按钮id中是否可能有通配符

我只通过c#API使用了selenium,但您可以尝试在click函数中使用xpath


点击(//input[contains(@id,'partialId')]);或者按钮,这取决于您所使用的html的类型,仅从逻辑上看是不正确的。因为刷新后您没有检查文本的存在

你可以这样写

i = sel.is_text_present("Schedule")    #text that the test case is 'waiting' for 
while i != True:
    print i
    print "Waiting for job..."
    sel.refresh()
    i = sel.is_text_present("Schedule")    #text that the test case is 'waiting' for

print "Job found..."

“其他:”呢?i、 e.循环的另一个分支。当“is_text_present()”为False时,循环需要循环。当它刷新并找到文本时,它需要执行另一组指令。谢谢没关系,我现在知道下一个顺序行将被执行!谢谢