1.selenium基本使用
1.selenium安装及基本操作
selenium是一个自动化测试工具,它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面浏览器驱动,也包括Phantomjs的无界面浏览器。
通过selenium+phantomjs可以直接渲染js
首先,需要下载不同浏览器的驱动,直接百度搜索就可以,例如搜过Chrome浏览器驱动,下载到本地
然后,将下载好的驱动放入到安装python的根目录下,例如C:/pyhton3/usr/bin,就是要把驱动和python.exe放在同一个文件夹。(虚拟环境也是一样,放入对应的虚拟环境下的python的根目录)
最后,通过pip安装selenium模块。
# coding = utf-8 import time from selenium import webdriver # 导入模块 driver = webdriver.Chrome() # 1.声明浏览器对象 driver.get('https://www.baidu.com') # 2. 访问地址 # dirver.get('https://www.weibo.com') try: driver.save_screenshot('test.jpg') # 3.操作。截图 finally: time.sleep(3) driver.close() # 4.关闭浏览器
这里模拟一个浏览器,访问百度,并将浏览器打开后的页面进行截图。
2.元素选取
要用代码操作浏览器,访问网页,做一些操作必须要通过定位,获得要操作元素的位置,例如,要在百度输入框搜索python关键词,要经过如下操作:
首先,通过代码定位到输入框所在位置;
然后,通过代码在输入框中输入关键字
最后,通过代码实现点击搜索。
import time from selenium import webdriver # 导入模块 driver = webdriver.Chrome() # 1.声明浏览器对象 driver.get('https://www.baidu.com') # 2. 访问地址 try: # 通过审查元素,发现百度输入框的id为kw, # 通过find_element_by_id("kw")定位到该输入框 # 通过send_keys("Python") 实现在输入框中输入关键字 driver.find_element_by_id('kw').send_keys('python') # 输入数据 # 同样的,通过find_element_by_id定位“百度一下”按钮 # 通过click()实现点击 driver.find_element_by_id('su').click() finally: time.sleep(30) driver.close()
当然,还有很多其他方式来定位:
# 通过文本,