Selenium 是一系列工具和库的综合项目,这些工具和库支持 web 浏览器的自动化。
WebDriver 使用浏览器供应商提供的浏览器自动化 API 来控制浏览器和运行测试,这就像真正的用户正在操作浏览器一样。
在 python 语境中所聊到的 Selenium 大概率是指 WebDriver 的使用。
Selenium 官网地址:https://www.selenium.dev/zh-cn/documentation/overview/
Selenium-Python 文档地址:https://selenium-python.readthedocs.io/index.html
Selenium-Python 中文文档地址(旧版未更新,仅作参考):https://selenium-python-zh.readthedocs.io/en/latest/getting-started.html
1 |
|
请先确保系统安装了 Firefox 浏览器
下载地址:https://github.com/mozilla/geckodriver/releases/
以 windows 系统为例:
geckodriver-{version}-win64.zip
文件geckodriver.exe
文件geckodriver.exe
文件加入到环境变量中(可选操作)1 2 3 4 5 6 7 8 9 10 11 |
|
关于 executable_path
参数:
1 2 3 4 5 6 |
|
https://selenium-python.readthedocs.io/locating-elements.html
注意:新版的已经不推荐使用 find_element_by_*
方式了。
方法 | 含义 | 示例 |
---|---|---|
find_element() |
查找单个元素 | driver.find_element('tag name', 'h1') |
find_elements() |
查找多个元素 | driver.find_elements('xpath', '//*[@id="convertd"]/tr/td[1]') |
第一个元素为查找的方式,取值可为:
通过 By 属性 |
直接通过字符串 | 含义 |
---|---|---|
By.ID |
"id" |
通过 ID 查找元素 |
By.NAME |
"name" |
通过 Name 查找元素 |
By.XPATH |
"xpath" |
通过 XPath 查找元素 xpath 地址可以通过浏览器按 F12 检查元素之后复制得来 |
By.LINK_TEXT |
"link text" |
通过链接文本获取超链接 |
By.PARTIAL_LINK_TEXT |
"partial link text" |
同上,但可部分匹配 |
By.TAG_NAME |
"tag name" |
通过标签名查找元素 |
By.CLASS_NAME |
"class name" |
通过 Class name 定位元素 |
By.CSS_SELECTOR |
"css selector" |
通过 CSS 选择器查找元素 |
By
需要导入:
1 |
|
https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webdriver
方法/属性 | 含义 |
---|---|
get (url: str) → None |
加载网页 |
close () → None |
关闭当前窗口 |
find_element (by='id', value=None) |
查找给定 By 策略和定位器的元素 |
find_elements (by='id', value=None) |
查找给定 By 策略和定位器的所有元素 |
execute_script (script, *args) |
在当前窗口/框架中同步执行 JavaScript 脚本代码 |
set_window_size (width, height, windowHandle='current') → dict |
设置当前窗口的宽度和高度 |
还有获取 cookie、窗口大小、截图等方法,这里就不一一列举了,可自行查看文档
https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement
方法/属性 | 含义 |
---|---|
clear () → None |
清除文本 |
click () → None |
单击元素 |
find_element (by='id', value=None) |
查找给定 By 策略和定位器的元素 |
find_elements (by='id', value=None) |
查找给定 By 策略和定位器的所有元素 |
get_attribute (name) → str |
获取元素的给定属性 |
send_keys (*value) → None |
模拟输入 |
text |
元素的文本 |
还有其它一些属性与方法,这里就不一一列举了,可自行查看文档
=== 全文完 ===