(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") |

本文深入探讨了WebDriver和WebElement的功能及方法,包括与Web应用程序交互、自动化下拉菜单、JavaScript警告和浏览器导航栏的操作。详细介绍了WebDriver如何进行浏览器交互,如获取URL、窗口句柄、页面源代码等,以及其提供的各种方法,如前进、后退、刷新页面等。同时,解释了如何使用WebElement进行页面元素的交互,如获取元素大小、属性、文本,以及模拟点击和输入。
578

被折叠的 条评论
为什么被折叠?



