Selenium模块通过WebDriver支持Chrome、Edge、Firefox、IE、Safar等主流浏览器的自动化操作,WebDriver 用于控制 web 浏览器的行为,每个浏览器都有一个特定的 WebDriver 实现(如geckodriver之于Firefox,chromedriver之于chrome),用于处理 Selenium 和浏览器之间的通信。
WebDriver常用属性及函数如下表所示,后续文章中结合Selenium文档再详细说明及验证对应属性或函数的用法:
| 序号 | 名称 | 说明 | 分类 |
|---|---|---|---|
| 1 | get(url) | 函数,打开指定 URL | 浏览器操作 |
| 2 | close | 函数,关闭当前窗口 | 浏览器操作 |
| 3 | quit | 函数,关闭所有窗口并退出浏览器 | 浏览器操作 |
| 4 | back | 函数,后退到上一个页面 | 浏览器操作 |
| 5 | forward | 函数,前进到下一个页面 | 浏览器操作 |
| 6 | refresh | 函数,刷新当前页面 | 浏览器操作 |
| 7 | title | 属性,获取当前页面标题 | 浏览器操作 |
| 8 | current_url | 属性, 获取当前页面 URL | 浏览器操作 |
| 9 | page_source | 属性, 获取当前页面源码 | 浏览器操作 |
| 10 | switch_to.window(window_name) | 函数,切换到指定窗口 | 窗口和框架操作 |
| 11 | switch_to.frame(frame_reference) | 函数,切换到指定框架(frame) | 窗口和框架操作 |
| 12 | switch_to.default_content | 函数,返回默认内容 | 窗口和框架操作 |
| 13 | window_handles | 属性,获取所有窗口句柄 | 窗口和框架操作 |
| 14 | current_window_handle | 属性, 获取当前窗口句柄 | 窗口和框架操作 |
| 15 | find_element_by_id | 函数,通过 ID 查找元素 | 元素查找方法 |
| 16 | find_element_by_name | 函数, 通过 name 属性查找元素 | 元素查找方法 |
| 17 | find_element_by_xpath | 函数,通过 XPath 查找元素 | 元素查找方法 |
| 18 | find_element_by_link_text | 函数,通过链接文本查找元素 | 元素查找方法 |
| 19 | find_element_by_partial_link_text | 函数, 通过部分链接文本查找元素 | 元素查找方法 |
| 20 | find_element_by_tag_name | 函数,通过标签名查找元素 | 元素查找方法 |
| 21 | find_element_by_class_name | 函数,通过 class 名查找元素 | 元素查找方法 |
| 22 | find_element_by_css_selector | 函数,通过 CSS 选择器查找元素 | 元素查找方法 |
| 23 | find_elements_by_* | 函数,将上述15~22的函数中的element换为elements,返回所有匹配元素列表 | 元素查找方法 |
| 24 | find_element | 函数,上述元素查找函数的内部实现,本函数接受两个参数:定位方式(By)和定位表达式,不同定位方式即对应上述查找函数名称后半部分的by方式,本函数还有对应的集合版本find_elements,用于返回所有匹配元素的列表,而不是第一个匹配元素 | 元素查找方法 |
| 25 | click | 函数,点击元素 | 元素操作 |
| 26 | send_keys | 函数,向元素发送按键 | 元素操作 |
| 27 | clear | 函数,清除元素内容 | 元素操作 |
| 28 | submit | 函数,提交表单 | 元素操作 |
| 29 | text | 属性, 获取元素文本 | 元素操作 |
| 30 | get_attribute | 函数, 获取元素属性值 | 元素操作 |
| 31 | is_displayed | 函数,检查元素是否可见 | 元素操作 |
| 32 | is_enabled | 函数,检查元素是否可用 | 元素操作 |
| 33 | is_selected | 函数,检查元素是否被选中 | 元素操作 |
参考文献:
1\]https://www.selenium.dev/zh-cn/ \[2\]https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/ \[3\]https://blog.csdn.net/kk_lzvvkpj/article/details/148610502 \[4\]https://registry.npmmirror.com/binary.html?path=chromedriver/ \[5\]https://chromedriver.chromium.org/