自動化測試彈框處理
標簽(空格分隔): 彈框
切換窗口:
1.在一個網頁窗口里面的操作的時候,點點的有時候他會出現一個新的窗口自動化,而不是原來的窗口;
問題:那么在新的窗口里面在繼續執行自動化的話,我們要注意什么呢?那么他會不會自動化到新的窗口呢?
答案:肯定是不行的,那我們怎么辦呢?
例如如下圖:最終的輸出還是:newwindwos

webdriver 屬性有個屬性是:windwos_handles,是保存所有自動化程序打開的瀏覽器的handles,所以我們要切換到某個窗口,我們可以利用循環,切換handles,切換窗口完了,可以更具對應的窗口的標題欄,來判斷,是不是我們打開的網頁;
切換到新窗口里面進行操作:
- 循環遍歷:driver.windows_handles
- driver.switch_to.window(handle)方法切入新窗口
#保存主窗口的Handle
mainWindow = driver.current_window_handle
print(driver.window_handles)
for handle in driver.window_handles:
#切換到新的窗口
driver.swithch_to.window(handle)
if '百度' in driver.title:
break
kw = driver.find_element_by_id('kw')
kw.send_keys(u'python自動化')
#切換到主窗口
driver.switch_to_window(mainWindow)
driver.find_element_by_tag_name('input').send_keys('helloworld')
input('pass any key to quit......')
driver.quit()
- 檢查該窗口特點,是否為要切入的那個;
切換到最初的窗口:
- 保存窗口的handle
關閉窗口:
- close方法
對話框操作:
- 對話彈框一般有3種:
1.alert(只有一種選擇)
如下圖的alert
2.confirm(有兩種選擇)
如下圖
3.prompt(有兩種選擇,還要一些輸入內容的)
如下圖
- 操作方法:
driver.switch_to.alert.accept() #點擊OK
driver.switch_to.alert.text # 得到對話框內容
driver.switch_to.alert.dismiss()#點擊關閉
driver.switch_to.alert.send_keys()# 輸入內容這種就用於上述的圖3 的情況
目前我們講的alert,就是上述的3種,這個alert是瀏覽器原生的(F12查不了),不是HTML的alert,有的時候,看到的alert按鈕比較多,或者比較豐富的頁面,這些都是HTML自己的alert
1.如下圖的alert,就是HTML元素:(可以按F12可以查看)




