python ----使用selenium

首先介绍一下selenium 是什么以及它的应用和特点?

       它的英文翻译是:硒     在python中叫做自动化测试工具,它支持各种浏览器,如果你在这些浏览器里面安装一个selenium的插件,那么就可以方便的实现web界面的测试,并且selenium是免费的。

        说白了selenium 是一个自动化测试工具,selenium可以完全模拟浏览器操作,对动态数据进行获取,

在python中的应用:

①:动态数据由代码生成的,在页面初始化的过程中是没有也无法获取的,但是可以通过selenium来进行获取

②:有些数据是需要登录以后才能获取的,比如说好友列表,评论,消费记录,登录以后获取cookie才能进行以上的操作,但是使用selenium以后可以避免人工登录只需要得到账号密码即可实现selenium代替登录

selenium的特点:

①有程序控制浏览器进行操作,而不是手动操作浏览器

②程序控制浏览器操作的时候速度非常慢,所以谨慎使用selenium

③使用selenium控制浏览器的时候需要下载浏览器对应的驱动程序

④selenium为开源免费但是更新速度没有浏览器快,不是selenium更新慢而是浏览器更新的太快,要注意selenium和浏览器的对应关系

安装相关的包和软件

1.安装selenium包

打开终端输入cmd然后输入:pip install selenium进行安装,下图是我已经安装过的界面

2.安装Geckodriver和chromedriver

chromedriver的下载地址:http://npm.taobao.org/mirrors/chromedriver/

Geckodriver的下载地址:https://github.com/mozilla/geckodriver/releases

下载完之后将其解压到桌面之后进行下一步骤:

 

怎么测试安装成功与否?

打开pycharm打上

#引入网页驱动
from selenium import webdriver
#使用网页驱动来运行火狐浏览器
driver=webdriver.Firefox()
#通过驱动来执行指定的网页
driver.get('http://www.baidu.com')
#如果能顺利的打开说明安装成功并能使用,如若不能删除重来

selenium的用法详解:

①:声明浏览器的对象:注意python文件名或者包不能命名为selenium,会导致无法导入

#引入网页驱动
from selenium import webdriver
#创建一个对象
driver =webdriver.Firefox()

②:访问页面并获取网页html

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
print(browser.page_source)#browser.page_source是获取网页的全部html
browser.close()

③:查找元素:selenium提供了找到元素的方法 find   element    by   xxxxx

如果只是想对这个元素进行查找,定位,建议使用xpath或者css selecotor   ,如果只是对找到的内容进行点击等操作建议使用find_element_by_xxx

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="xx"]

如果在运行过程中出现以上错误这是因为代码执行的时候速度很快但是浏览器响应很慢,代码执行到这的时候浏览器里面的元素可能还没有加载完,所以报错找不到指定的元素

from selenium import webdriver
driver =webdriver.Firefox()
driver.get('http://www.baidu.com')
通过id来找
driver.find_element_by_id('kw').send_keys('selenium')
通过name来找
driver.find_element_by_name('wd').send_keys('csdn')
unicode 如果后面有中文 那么前面需要加一个u r
错误:'list' object has no attribute 'send_keys'
driver.find_element_by_class_name('s_ipt').send_keys(u'智游')
tag_name:标签名字
driver.find_element_by_tag_name('input')
selector:选择器
driver.find_element_by_css_selector('#kw')
通过xpath语法定位一个元素
driver.find_element_by_xpath('//form[@id="form"]/span/input[@id="kw"]')
link:链接
driver.find_element_by_link_text('贴吧')


driver.close()

以上就是selenium的一些简单操作  感谢您的查看。

 

猜你喜欢

转载自blog.csdn.net/crq_zcbk/article/details/81290815
今日推荐