(1)更多地了解WebDriver和WebElement这两个类
(2)使用WebDriver和WebElement的方法来实现包含与Web应用程序交互的测试赛
(3)使用Select类来实现下拉菜单和列表的自动化操作
(4)实现JavaScript警告和浏览器导航栏的自动化
1.1、WebDriver原理
WebDriver提供许多用来与浏览器交互的功能与设置。我们可以通过使用WebDriver的功能和一些方法来实现与浏览器窗口、警告、框架和弹出框的交互,它也提供了自动化操作浏览器导航栏、设置cookies、截屏等方便我们测试的特性。
1.1.1、WebDriver功能
功能/属性 | 描述 | 实例 |
current_url | 获取当前页面的URL地址 | driver.current_url |
current_window_handle | 获取当前窗口的句柄 | driver.current_window_handle |
name | 获取该实例底层的浏览器名称 | driver.name |
orientation | 获取当前设备的方位 | driver.orientation |
page_source | 获取当前页面的源代码 | driver.page_source |
title | 获取当前页面的标题 | driver.title |
window_handles | 获取当前session里所有的窗口的句柄 | driver,window_handles |
1.1.2、WebDriver方法
方法 | 描述 | 参数 | 实例 |
back() | 后退一步到当前会话的浏览器历史记录最后一步操作前的页面 | driver.back() | |
close() | 关闭当前浏览器窗口 | driver.close() | |
forward() | 前进一步到当前会话的浏览器历史记录中前一步操作后的页面 | driver.forward() | |
get(url) | 访问目标URL并加载网页到当前的浏览器会话 | url是目标网页的网站地址 | driver.get("http://www.baidu.com") |
maximize_window() | 最大化当前浏览器窗口 | driver.maximize_window() | |
quit() | 退出当前driver并且关闭所有的相关窗口 | driver.quit() | |
refresh() | 刷新当前页面 | driver.refresh() | |
switch_to_active_element() | 返回当前页面唯一焦点所在的元素或者元素体 | driver.switch_to_active_element() | |
switch_to_alert() | 把焦点切换至当前页面弹出框 | driver.seitch_to_alert() | |
switch_to_default_content() | 切换焦点至默认框架内 | driver.switch_to_default_content() | |
switch_to_frame(frame_reference) | 通过索引、名称和网页元素将焦点切换到指定的框架,这种方法也适用于IFRAMES | frame_refernece:要切换的目标窗口的名称、整数类型的索引或者要切换的目标框架的网页元素 | driver.switch_to_frame('frame_name') |
switch_to_window(window_name) | 切换焦点到指定的窗口 | window_name: 要切换的目标窗口的名称或者句柄 | driver.switch_to_window('main') |
implicity_wait(time_to_wait) | 超时设置等待目标元素被找到,或者目标指令执行完成。该方法在每个session只需调用一次,execute_async_script()的超时设置请参考set_script_timeout方法 | time_to_wait: 等待时间(单位为秒) | |
set_page_load_timeout(time_to_wait) | 设置一个页面完全加载完成的超时等待时间 | time_to_wait: 等待时间(单位为秒) | driver.set_page_load_timeout(30) |
set_script_timeout(time_to_wait) | 设置脚本执行的超时时间,应该在execute_async_script()抛出错误之前 | time_to_wait: 等待时间(单位为秒) | driver.set_script_time(30) |
1.2、WebElement接口
可以通过WebElement实现与网站页面上的元素交互。这些元素包含文本框、文本域、按钮、单选框、多选框、表格、行、列和div等。
1.2.1、WebElement功能
功能 | 描述 | 实例 |
size | 获取元素的大小 | element.size |
tag_name | 获取元素的HTML标签名称 | element.tag_name |
text | 获取元素的文本值 | element.text |
1.2.2、WebElement方法
方法 | 描述 | 参数 | 实例 |
clear() | 清除文本框或者文本域中的内容 | element.clear() | |
click() | 单击元素 | element.click() | |
get_attribute(name) | 获取元素的属性值 | name:元素的名称 | element.get_attribute("value") |
is_displayed() | 检查元素对于用户是否可见 | element.is_displayed() | |
is_enabled() | 检查元素是否可用 | element.is_enabled() | |
is_selected() | 检查元素是否被选中。该方法应用于复选框和单选按钮 | element.is_selected | |
send_keys(*value) | 模拟输入文本 | value:待输入的字符串 | element.send_keys("hyp") |
submit() | 用于提交表单。如果对一个元素应用此方法,将会提交该元素所属的表单 | element.submit() | |
value_of_css_property (property_name) | 获取CSS属性的值 | property_name:CSS属性的名称 | element.value_of_css_property("color") |