場景
頁面上彈出的對話框是自動化測試經常會遇到的一個問題;很多情況下對話框是一個iframe,如之前iframe介紹的例子,處理起來稍微有點麻煩;但現在很多前端框架的對話框是div 形式的,這就讓我們的處理變得十分簡單。
代碼
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 對話框.py @time: 2018-09-25 9:52 @desc: ''' from selenium import webdriver #導入WebDriverWait from selenium.webdriver.support.ui import WebDriverWait import time driver = webdriver.Firefox() driver.get('https://www.baidu.com/') element=driver.find_elements_by_name("tj_login") for ele0 in element: if ele0.is_displayed(): ele0.click() #切換用戶名登錄方式 user_login =WebDriverWait(driver,30).until(lambda driver:driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn') ) user_login.click() time.sleep(2) #輸入用戶名 driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys('123456') time.sleep(2) #輸入密碼 driver.find_element_by_id('TANGRAM__PSP_10__password').send_keys('123456') time.sleep(2) #提交 driver.find_element_by_id('TANGRAM__PSP_10__submit').submit() time.sleep(2) driver.quit()
備注:
定位元素可以使用等待時間的方法,上面代碼可自行修改