selenium的学习
1 selenium英文原意是硒 在python中是一个自动化测试工具
测试按照不同得我分类 分为手动测试 或者自动测试
黑盒测试或者白盒测试
selenium在python中的应用
selenium 可以完全模拟人,对浏览器操作,对动态数据进行获取 ,动态数据由代码生成,在页面的初始化过程中
是没有的,也无法获取 但是可以通过selenium进行获取
有些数据是需要进行登录后才能够获取的,比如说好友列表 评论 消费记录 登陆后获取cookie才能进行以上
操作,只要获取账号密码之后即可实现selenium代替登陆
selenium的特点
由程序控制浏览器进行操作,而不是手动操作浏览器
程序控制浏览器进行操作的时候 ,速度回很慢,所以要谨慎使用selenium
使用selenium控制浏览器的时候需要下载浏览器对应的驱动程序
selenium为开源的免费的,但是更新速度没有浏览器快不是因为selenium的官网新速度慢而是浏览器
的更新速度太快了,需要selenium与浏览器之间的冠词
引入selenium
在终端下输入pip install selenium
from selenium import webdriver 引入selenium
selenium的安装
把下载好的文件解压到 D:\Python\Anaconda\Scripts 路径下即可 就已经安装成功了
2 selenium 的基本用法
是使用网页驱动来控制火狐浏览器的 通过驱动来执行指定的网页 创建这样一个对象
driver = webdriver.Firefox()
selenium 提供了找到元素的方法find_element by XXXX
如果只是相对这些元素进行查找 定位 建议使用 xpath 或者css_selector
如果需要对找到的内容进行点击等操作
建议使用find_element by XXXX操作
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="kw"]
# 错误原因 代码执行速度太快 但是浏览器响应很慢 代码执行到这里的时候 浏览器里面的代码还没有加载完
所以报错,找不到指定的元素
driver.find_element_by_name('wd).send_keys('')
driver.find_element_by_tag_name('input').send_keys('')
通过样式选择器 #表示Id .表示类名
driver.find_element_by_css_selsctor('#kw)
通过xpath语法定位一个元素
driver.find_element_by_xpath('//form[id =""form]/span/input[@id="kw"]')
通过连接找到元素
driver.find_element_by_link_text('贴吧')
点击登录
driver.find_element_by_value('').click()
清除文本框的内容
driver.find_element_by_name('username').clear()
driver.find_element_by_class_name('password').clear()
关闭驱动
driver.close()