文章目录
一、selenium简介
selenium可以模拟真实浏览器,自动化测试工具,能完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器。
更多参考: https://baike.baidu.com/item/Selenium/18266?fr=aladdin
二、环境安装
1、下载安装selenium:
pip install selenium
2、下载浏览器驱动程序:
- http://chromedriver.storage.googleapis.com/index.html
3、查看自己浏览器版本
- 谷歌浏览器: chrome://settings/help ,或者 设置——关于Chrome——找到chrome版本
选择适合自己浏览器版本的驱动下载,windows下载 chromedriver_win32.zip
三、selenium的简单案例
from selenium import webdriver# 导入库
browser = webdriver.Chrome(r"驱动程序路径") # 声明浏览器,创建浏览器对象(句柄)
url = 'https:www.baidu.com'
browser.get(url) # 打开浏览器预设网址
print(browser.page_source) # 打印网页源代码
browser.close() # 关闭当前标签页
browser.quit()
四、selenium支持浏览器
Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等,还有Android、BlackBerry等手机端的浏览器。另外,也支持无界面浏览器 PhantomJS。
from selenium import webdriver
browser_obj = webdriver.Chrome() # 谷歌浏览器
browser_obj = webdriver.Firefox() # 火狐浏览器
browser_obj = webdriver.Edge() #IE 浏览器
browser_obj = webdriver.PhantomJS() # 无可视化界面的浏览器(无头浏览器)
browser_obj = webdriver.Safari() # 苹果macOS中浏览器
五、selenium的基本使用
1、简单入门
from selenium import webdriver
# chromedriver文件的绝对路径
driver_path = r"D:\programApp\chromedriver\chromedriver8104.exe"
# 初始化一个browser 并且指定Chromedrive的绝对路径
browser = webdriver.Chrome(executable_path=driver_path)
# 请求网页
browser.get('https://www.baidu.com')
# 通过page_source获取网页源代码
print(browser.page_source)
browser.close() # 关闭当前页面
browser.quit() # 退出浏览器
2、定位元素
方法 | 功能 |
---|---|
find_element_by_id() | 根据id来查找某个元素。 |
find_element_by_class_name() | 根据类名查找元素 |
find_element_by_name() | 根据name属性的值来查找元素 |
find_element_by_tag_name() | 根据标签名来查找元素 |
find_element_by_xpath() | 根据xpath语法来获取元素 |
find_element_by_css_selector() | 根据css选择器选择元素 |
find_element_by_link_text() | 通过文本内容定位 |
find_element_by_partial_link_text() | 通过文本内容定位 |
定位到百度输入框,通过搜索 金鞍少年的博客 看页面跳转来判断是否定位成功
from selenium import webdriver
driver_path = r"D:\programApp\chromedriver\chromedriver8104.exe"
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://www.baidu.com')
# # 01、根据id来查找某个元素
# inputTag = driver.find_element_by_id('kw')
# inputTag.send_keys('金鞍少年的博客')
# # 02、根据类名来查找某个元素
# # inputTag = driver.find_element_by_class_name('s_ipt')
# # inputTag.send_keys('金鞍少年的博客')
# # 03、根据name的属性值来查找元素
# inputTag = driver.find_element_by_name('wd')
# inputTag.send_keys('金鞍少年的博客')
# # 04 、根据标签名来查找元素
# inputTag = driver.find_element_by_tag_name('input')
# inputTag.send_keys('金鞍少年的博客')
'''
定位到的第一个input是style标签下的input,所有不能send——keys
'''
# # 05 、根据xpath语法来获取元素
# inputTag = driver.find_element_by_xpath('//input [@id="kw"]')
# inputTag.send_keys('金鞍少年的博客')
# 06、根据css选择器来获取元素
inputTag = driver.find_element_by_css_selector('#form #kw'