在過去的幾個月中,我一直在教自己的Python。我的第一個項目是使用Selenium RC Web驅動框架的瀏覽器驅動程序測試用例(儘管我的項目中沒有導入webdriver,以免混淆)。基本上,我的測試用例需要鉤入用JavaScript和HTML編寫的'.aspx'頁面的刷新循環。該循環不斷刷新該頁面,直到滿足sel.is_text_present("foo")
條件。在刷新之前,直到出現定義的「文本」爲止,該腳本應該是click
與字符串is_text_present
一起出現的JavaScript按鈕。在執行腳本時,Firefox會打開並指向自己的特定頁面並輸入其refresh loop
,但當文本出現時(即.aspx
頁面更改其狀態並使用JavaScript按鈕加載JavaScript表格),該腳本不會執行其他分支的循環。下面是一個代碼片段,顯示我已經實現的邏輯:Selenium RC/Python/JavaScript .aspx/Loop語句
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中使用通配符?
'Else:'呢?即循環的另一個分支。 'is_text_present()'爲False時,循環需要循環。當它刷新並找到文本時,它需要執行另一組指令。謝謝! – philthy 2013-04-11 23:44:56
沒關係,我現在明白了下一個順序線將被執行!謝謝。 – philthy 2013-04-12 00:04:43