场景
页面上弹出的对话框是自动化测试经常会遇到的一个问题;很多情况下对话框是一个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()
备注:
定位元素可以使用等待时间的方法,上面代码可自行修改