頁面上彈出的對話框是自動化測試經常會遇到的一個問題;很多情況下對話框是一個iframe,如上一
節中介紹的例子,處理起來稍微有點麻煩;但現在很多前端框架的對話框是div 形式的,這就讓我們的處
理變得十分簡單。
上圖為百度首頁的登錄對話框,下面通過腳本對百度進行登錄操作:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com/")
#點擊登錄鏈接
driver.find_element_by_name("tj_login").click()
#通過二次定位找到用戶名輸入框
div=driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
div.send_keys("username")
#輸入登錄密碼
driver.find_element_by_name("password").send_keys("password")
#點擊登錄
driver.find_element_by_id("TANGRAM__PSP_10__submit").click()
driver.quit()
本例中並沒有用到新方法,唯一的技巧是用到了二次定位,這個技巧在層級定位中已經有過使用。
driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
第一次定位找到彈出的登錄框,在登錄框上再次進行定位找到了用戶名輸入框。