目录
官方文档:https://selenium-python.readthedocs.io/
1.selenium安装
2.确认是否安装ChromeDriver
3.声明浏览器对象
4.访问页面&&关闭页面
5.查找节点
6.获取节点信息
7.节点交互
8.延时等待
9.前进&&后退
10.Cookies
11.切换选项卡
官方文档:https://selenium-python.readthedocs.io/
1.selenium安装
pip install selenium
2.确认是否安装ChromeDriver
安装地址:https://npm.taobao.org/mirrors/chromedriver/
3.声明浏览器对象
from selenium import webdriver
browser = webdriver.Chrome()
由此路蓝旗对象声明完毕,可以通过操作改对象控制浏览器行为
4.访问页面&&关闭页面
#访问
browser.get('https://baidu.com')
#关闭
browser.close()
5.查找节点
单个节点:
find_element_by_id()
find_element_by_name()
#根据xpath方式获取
find_element_by_xpath()
#根据链接文字爬取
find_element_by_link_text()
#根据部分链接文字爬取
find_element_by_partial_link_text()
find_element_by_tag_name()
find_element_by_tag_class_name()
find_element_by_class_name()
#根据css选择器获取
find_element_by_css_selector()
多个节点:
获取所有满足条件的节点,方法和单个节点类似,用find_elements_ 注意区别就是多了一个 s
*无论单个还是多个获取的节点均为WebElement类型
6.获取节点信息
由于selenium获取的节点为webelement类型不能直接阅读,因此要想获取节点信息除阅读源码外需要利用一些方法
- 获取属性 get_attribute()
- 获取文本值 get_text()
- 获取节点id element.id
- 获取节点在页面中相对位置 element.location
- 获取标签名 element.tag_name
- 获取节点大小 element.size
7.节点交互
输入文字:(模拟文本框输入
element.send_keys('内容')
清除文字:
element.clear()
点击功能:
button.click()
其他功能详看官方文档,上有链接
8.延时等待
在很多情况下页面一些节点是通过js来添加的,但是由于网络延迟的原因我们需要等待页面加载完毕后再执行后续操作。
* 隐式等待:
implicitlt_wait() 默认等待时间为 0,由于页面加载受网络影响,加载时间是不定的,因此隐式等待添加一个固定的等待时间往往效果不太好
browser = webdriver.Chrome()
browser.implicitly_wait(10)
* 显示等待
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(browser, 10)
element = wait.until(EC.element_to_be_clickable((By.ID,'someid')))
首先引入webDriverWait对象指定最长时间 然后调用until()方法传入等待条件
常用等待条件:https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expected_conditions
9.前进&&后退
browser.back()
browser.forward()
10.Cookies
获取cookies
browser.get_cookies()
添加cookies:
browser.add_cookie({"name":"zzz"})
删除所有cookies
browser.delete_all_cookies()
11.切换选项卡
switch_to_window()切换选项卡,参数为选项卡代号,window_handles[]获取
browser.switch_to_window(browser.window_handles[1])