selenium使用
简介:
web自动化测试工具;可以直接运行在浏览器上,支持所有主流浏览器;可以接受指令,让浏览器自动加载页面,获取需要的数据。
1.下载浏览器驱动
-
查看自己浏览器版本
-
下载对应驱动
http://chromedriver.storage.googleapis.com/index.html
- 把chromedriver.exe放到与你的python解释器同一路径
2.selenium基本使用
- selenium的导包:from selenium import webdriver
- selenium创建driver对象:webdriver.Chrome()
- selenium请求数据:driver.get(“http://www.baidu.com/”)
- selenium查看数据: driver.page_source
- 关闭浏览器当前页面:driver.close()
- 关闭浏览器: driver.quit()
import time
from selenium import webdriver
if __name__ == '__main__':
# 1.创建浏览器对象,效果:打开一个对应的浏览器
driver_ = webdriver.Chrome()
time.sleep(2)
# 2.要url输入框输入一个url 效果:进入到百度首页
driver_.get('https://www.baidu.com/')
time.sleep(2)
# 3.在(1)搜索框输入关键字 (2)进行搜索
# (1) 找到输入框
input_obj = driver_.find_element_by_id('kw') # 会返回一个对象
# (2) 输入数据 效果就是往输入框对象发送数据
input_obj.send_keys('你好')
# (3) 进行搜索 达到指定页面
bai_du = driver_.find_element_by_id('su').click() # class类容易出现多个,没有id的情况下,,推荐使用xpath
# (4) 点击触发
# bai_du.click()
# 此时此刻 浏览器对象是处于 搜索页面
# data_ = driver_.page_source
# print(data_)
# 得到当前时刻的cookie
cookie_ = driver_.get_cookies()
print(cookie_)
# 当前页面的url url地址栏里面的
url_ = driver_.current_url
print(url_)
time.sleep(5)
driver_.quit() # 关闭浏览器
3.对象定位方法
- 在谷歌浏览器中,选中元素,右键点击“检查”,即可在“Elements"中查看元素信息。
以百度首页搜索框为例,查看元素信息如下图所示:
- webdriver 提供了一系列的对象定位方法,常用的有以下8种:
定位一个元素 | 定位多个元素 | 含义 |
---|---|---|
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选择器进行定位 |