python自动化测试界面_Selenium 与页面的交互—Python自动化测试实战(4)

第 3 章  Selenium 与页面的交互

3.1  WebDriver 浏览器的属性

WebDriver 提供了很多属性来支持对浏览器的操作,例如,获取测试地址、多窗口的处理、获取浏览器名称等,具体介绍如下。

1.获取测试的地址

获取测试的地址用到的方法是 current_url,也就是获取当前测试的具体 URL。

以百度首页为例,获取的地址就是百度首页的地址,实现的测试代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://www.baidu.com') driver.implicitly_wait(30) print('测试地址为:{0}'.format(driver.current_url)) driver.quit()

运行以上代码后获取的就是百度首页的地址。

2.获取当前页面代码

获取当前测试页面的代码用到的方法是 page_source。以百度首页为例,要想获取百度首页的页面代码,实现的代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://www.baidu.com') driver.implicitly_wait(30) print('页面代码如下:{0}'.format(driver.page_source)) driver.quit()

3.获取当前的 Title

获取当前的 Title,即获取当前测试页面的标题。例如,百度首页的 Title 是"百度一下,你就知道"。获取 Title 的测试代码为:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://www.baidu.com') driver.implicitly_wait(30) print('百度首页的Title为:{0}'.format(driver.title)) driver.quit()

4.页面的前进和后退

前进用到的方法是 forward,后退用到的方法是 back。以百度首页和 Bing 搜索首页为例,要实现先打开百度首页,再打开 Bing 搜索页,再后退到百度首页,然后再从百度首页返回到 Bing 搜索页。实现的测试代码为:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver import  time as t

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://www.baidu.com') t.sleep(2) driver.get('http://www.bing.com') t.sleep(2)

#返回到百度

driver.back() print('当前URL为:{0}'.format(driver.current_url)) t.sleep(2) #前进到bing

driver.forward() print('当前URL为:{0}'.format(driver.current_url)) driver.quit()

5.关闭程序

在 Selenium 中,quit 方法用来退出驱动程序(Driver)并关闭执行的浏览器;而 close 方法用来关闭执行的浏览器,所以关闭程序建议使用 quit 方法。

6.加载测试地址

在 UI 自动化测试中,打开测试地址用到的方法是 get 方法,它的参数是要打开的测试页面的地址。例如,要测试打开新浪邮箱的地址(https://

mail.sina.com.cn/),测试代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://mail.sina.com.cn/') driver.quit()

7.多窗口实战

在新浪邮箱的登录页面(简称新浪登录页面,或登录页面)点击"注册"按钮,如何在打开的注册页面输入框中输入注册信息呢?这里会用到窗口处理的方法。current_window_ handle 用来获取当前浏览器的窗口句柄,window_handles 用来获取浏览器的所有窗口句柄。要实现在新浪登录页面点击注册,在注册页面邮箱地址输入框中输入邮箱地址,再次跳转到登录页面,代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver import  time as t

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://mail.sina.com.cn/') driver.implicitly_wait(30)

#获取当前窗口句柄

now_handle=driver.current_window_handle t.sleep(2)

#点击注册链接

driver.find_element_by_link_text('注册').click() t.sleep(2)

#获取所有窗口句柄

handles=driver.window_handles

#对所有窗口句柄循环处理

for handle in handles:

#判断handle不是当前窗口句柄    if handle!=now_handle:

driver.switch_to_window(handle)       t.sleep(2)       driver.find_element_by_name('email').send_keys('wuya')       t.sleep(2)       # 关闭注册页面

driver.close()

#切换到登录页面

driver.switch_to_window(now_handle) t.sleep(3)

#在账号输入框中输入邮箱

driver.find_element_by_id('freename').send_keys('wuya') t.sleep(4) driver.quit()

8.浏览器最大化

使浏览器 大化的方法是 maximize_window。一般打开浏览器时,界面并不是 大化的,这对 UI 自动化测试的影响比较大,所以建议在打开浏览器后,调用该方法让浏览器 大化,实现的测试代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver

driver=webdriver.Firefox()

#浏览器 大化

driver.maximize_window() driver.get('http://www.baidu.com') driver.quit()

9.刷新

刷新用到的方法是 refresh 方法。在 UI 自动化测试中,某些场景需要用到页面的刷新。例如,打开百度首页后,输入搜索关键字,然后刷新页面查看效果,实现的代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver import  time as t

driver=webdriver.Firefox() driver.maximize_window() driver.get('http://www.baidu.com') driver.find_element_by_id('kw').send_keys('Selenium') t.sleep(2)

#对页面进行刷新

driver.refresh() t.sleep(3) driver.quit()

10.获取执行的浏览器

获取执行的浏览器名称用到的是 name 方法,实现的代码如下:

#!/usr/bin/env python

#-*-coding:utf-8-*-

#author:wuya

from selenium import  webdriver import  time as t

driver=webdriver.Firefox() driver.maximize_window()

driver.get('http://www.baidu.com')

#测试使用的浏览器

print('测试执行的浏览器为:{0}'.format(driver.name)) driver.quit()

版权声明:51Testing软件测试网获得电子工业出版社和作者授权连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值