Selenium是一个用于Web应用程序测试的工具,很多时候可以拿来做自动化的功能,解放一些重复的事情,比如自动注册、登录、获取信息、处理 表等等,都是可以自己去设计一个流程即可,使用它,先从安装和配置开始!!
pip install Selenium
由于是用于web应用,需要下载浏览器不同版本对应的驱动(ChromeDriver),以Chrome为例,先查看版本: chrome://version/
Google Chrome 94.0.4606.71 (正式版本) (64 位) (cohort: Stable)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 89
Current browser version is 94.0.4606.71 with binary path C:Program Files (x86)GoogleChromeApplicationchrome.exe
配置环境变量:
比如: E:MyChromeDriver, 把下载好的放进这个目录下
设置环境变量:系统变量–>Path,将“ E:MyChromeDriver”目录添加到Path的值中即可
安装和配置好之后就可以使用它了,使用它最关键在于如何定位元素
定位一个元素 |
定位多个元素 | 说明 |
find_element_by_id | find_elements_by_id | 通过元素id定位 |
find_element_by_name | find_elements_by_name | 通过元素name定位 |
find_element_by_xpath | find_elements_by_xpath | 通过xpath表达式定位 |
find_element_by_link_text | find_elements_by_link_text | 通过完整超链接的文本定位 |
find_element_by_partial_link_text | find_elements_by_partial_link_text | 通过部分链接的文本定位 |
find_element_by_tag_name | find_elements_by_tag_name | 通过标签定位 |
find_element_by_class_name | find_elements_by_class_name | 通过类名进行定位 |
find_element_by_css_selector | find_elements_by_css_selector | 通过css选择器进行定位 |
例,通过自动打开百度,自定义搜索并分别点开链接查看文章
如果是有框架的情况,需要进行切换才能定位,比如自动登录126邮箱
send_keys模拟键盘的一些示例
send_keys(Keys.BACK_SPACE) | 删除键 |
send_keys(Keys.SPACE) | 空格键 |
send_keys(Keys.TAB) | 制表键 |
send_keys(Keys.ESCAPE) | 回退键(Esc键) |
send_keys(Keys.ENTER) | 回车键 |
send_keys(Keys.CONTROL,‘a’) | 全选(Ctrl+A) |
send_keys(Keys.CONTROL,‘c’) | 复制(Ctrl+C) |
send_keys(Keys.CONTROL,‘x’) | 剪切(Ctrl+X) |
send_keys(Keys.CONTROL,‘v’) | 粘贴(Ctrl+V) |
send_keys(Keys.F1…Fn) | 功能键 F1…Fn |
另外有些 站禁止使用Selenium,可以通过js的window.navigator.webdriver来判断,如果是true就是代表通过Selenium在访问
熟悉js的可以使用下面这个来修改属性为false:
不想让浏览器显示“chrome正受到自动测试软件的控制”信息,可以通过选项进行隐藏
option = webdriver.ChromeOptions()
option.add_experimental_option(‘excludeSwitches’, [‘enable-automation’])
browser = webdriver.Chrome(options=option)
browser.get(‘https://126.com’)
如果是一些隐藏的标签或界面,这个时候可以模拟鼠标操作,比如百度的设置下面的搜索设置,就需要鼠标放上去再显示出来,下面设置每页20条的示例
对Cookies的操作
对js脚本的执行操作
截图操作
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫Selenium208939 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!