selenium基础用法
目录
简介
selenium是一个第三方模块,作用是模拟人来操作浏览器。除了需要常规安装selenium包之外,还需要下载浏览器驱动,需要操作什么浏览器就下载什么浏览器的驱动。
安装
-
首先要安装selenium包
# 使用pip安装即可 pip install selenium
-
下载chrome浏览器驱动
# 下载地址 http://npm.taobao.org/mirrors/chromedriver/ # 打开之后,选择对应的浏览器版本和系统就可以了。
-
下载好了之后,把驱动放在python安装目录下就行了,也可以不放,调用selenium包的时候,加上驱动的位置就行了,下面会演示。
用法
初始化
# 导入模块
from selenium import webdriver
# 这个就是浏览器驱动的位置
driver_path = '/Users/liaoguoxiong/Downloads/Compressed/chromedriver'
# 设置使用的浏览器是Chrome,并添加浏览器驱动的位置参数
browser = webdriver.Chrome(executable_path=driver_path)
# 需要打开的网址
url = 'https://www.baidu.com/'
# 打开网址
browser.get(url)
常用的方法
自定义浏览器尺寸
# 最大化浏览器
browser.maximize_window()
# 自定义浏览器尺寸,传入尺寸,比如1920✖️1080
browser.set_window_size(1920,1080)
关闭浏览器
# 关闭浏览器当前页面,如果浏览器只有一个页面的话,关闭页面就是关闭浏览器了,而存在多个页面的话,浏览器没关闭
browser.close()
# 退出浏览器,不管你有多少个页面
browser.quit()
获取网页相关信息
# 获取网页的标题
browser.title
# 获取当前网页的url
browser.current_url
# 获取浏览器的相关信息,得到一个字典
browser.capabilities
页面的常用操作
# 后退
browser.back()
# 前进
browe.forward()
# 刷新网页
browser.refresh()
# 选中标签之后,输入信息
browser.find_element_by_xpath().send_keys()
# 删除信息
browser.find_element_by_xpath().clear()
操作多个页面
# Google浏览器中可以使用组合键ctrl+t打开新的标签页,但是使用代码打开并不行,最后使用JavaScript实现
# 打开新的标签页的JavaScript为: window.open(新的标签页的url)
# 在新的页面打开
other_url = 'https://dun.163.com/trial/sense'
# 打开新页面的JavaScript
js = 'window.open("%s")' % other_url
# 执行JS
brower.execute_script(js)
# 获取页面窗口句柄
# 我们打开新的窗口之后,发现操作的还是原来的窗口,这时候就得切换窗口句柄了
# 获取浏览器所有标签页的窗口句柄,得到一个列表,列表是所有标签页的句柄,顺序根据标签也来的
browser.window_handles
# 获取当前页面的窗口句柄
browser.current_window_handle
# 切换窗口句柄,传入获取的窗口句柄
browser.switch_to.window(窗口句柄)
用途
用来模拟人操作浏览器,常用的操作有点击和输入,要想实现这些操作,必须先定位到具体的地方,而在网页中,需要定位到具体的标签,定位到之后,就可以实现操作了.
有七种定位元素的方法.
常用的定位元素方法
通过元素id来定位
browser.find_element_by_id()
通过class属性来定位
browser.find_element_by_class_name()
通过标签名来定位
browser.find_element_by_tag_name()
通过css样式来定位
# . 是class #是id
browser.find_element_by_css_selector()
通过节点的name来定位
browser.find_element_by_name()
通过文字链接来定位
browser.find_element_by_link_text()
通过部分文字链接来定位
browser.find_element_by_partial_link_text()
通过xpath来定位(最常用)
browser.find_element_by_xpath()