在学习UI自动化后我们使用到的selenium提供了许多API方法与页面进行交互,如点击、键盘输入、打开关闭网页、输入文字、等 ( selenium之键盘事件实战 )
webdriver对浏览器提供了很多属性来对浏览器进行操作,常用的如下代码,代码中每个操作都有指定的备注
代码语言:javascript复制#-*-coding:utf-8-*-#authou:shichao
from selenium import webdriverimport time as tdr = webdriver.Chrome()
# 获取执行的浏览器.nameprint('执行的浏览器为:{0}'.format(dr.name))
# 浏览器最大化.作用在于测试UI界面时页面窗口分辨率大小,一般使用最大化测试最佳,方法为.maximize_windowdr.maximize_window()
# 打开访问地址.打开测试地址用到的方法是get方法,它的参数是要打开的测试页面的地址。例如,要测试打开百度(http://www.baidu.com)dr.get('http://www.baidu.com')
t.sleep(1)# 刷新.用户页面数据更新或者刷新结果等需要使用到dr.refresh
t.sleep(2)# 获取访问的页面地址print('get_baidu_ulr:{0}'.format(dr.current_url))
t.sleep(2)# 获取腾讯百度搜索页登录页的代码print('页面代码:{0}'.format(dr.page_source))
t.sleep(10)dr.quit()# 关闭程序.在Selenium中,quit 方法用来退出驱动程序(Driver)并关闭执行的浏览器;而close方法用来关闭执行的浏览器,所以关闭程序建议使用quit方法。
多窗口实践 : 窗口处理的方法,current_window_handle 用来获取当前浏览器的窗口句柄,window_handles 用来获取浏览器的所有窗口句柄。如下,实现在新浪登录页面点击注册,在注册页面邮箱地址输入框中输入邮箱地址,再次跳转到登录页面。
代码语言:javascript复制#-*-coding:utf-8-*-#authou:shichaofrom selenium import webdriverimport time as t
dr = webdriver.Chrome()dr.maximize_window()dr.get('https://mail.qq.com/')dr.implicitly_wait(10) # 隐形等待 10秒print('get_mail_title:{0}'.format(dr.title))# 获取腾讯微博页面的标题t.sleep(1)JB = dr.current_window_handle# 获取当前登录页窗口的句柄print('当前登录页窗口句柄:', JB)t.sleep(5)dr.switch_to.frame('login_frame')# 进入frame页面内t.sleep(3)dr.find_element_by_xpath('//*[@id="forgetpwd"]').click()# 点击qq邮箱的忘了密码t.sleep(3)JBS = dr.window_handles# 获取当前窗口句柄集权合(列表类型)for JBK in JBS: #判断JB不是当前窗口句柄 if JBK != JB: dr.switch_to.window(JBK) # driver.switch_to.window(handles[num]) # 跳转到第num个窗口,从0开始 多种写法 t.sleep(1) dr.close() #关闭注册页面
#切换到登录页面dr.switch_to.window(JB)t.sleep(1)dr.refresh()# 刷新页面dr.quit()
以上就是UI自动化中与页面常操作交互,后期会持续更新,简单操作,只求每天进步一点,python都不断地更新,你能力还不更新,还在等什么.