在过去的几个月里,我一直在自学 Python。我的第一个项目是一个使用 Selenium RC Web 驱动框架的浏览器驱动测试用例(但在我的项目中没有导入 webdriver,以免混淆)。基本上,我的测试用例需要连接到用 JavaScript 和 HTML 编写的“.aspx”页面的刷新循环中。此循环不断刷新此.aspx
页面,直到sel.is_text_present("foo")
满足条件。刷新直到出现定义的“文本”后,脚本应该是一个与字符串click
一起出现的 JavaScript 按钮。is_text_present
执行脚本后,Firefox 会打开并将自身定向到特定页面并输入其refresh loop
,但是当文本出现时(即.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 中使用通配符?