1.selenium环境配置
selenium是一个python的开源库。使用pip就可以安装
直接在cmd或者pycharm的终端执行pip install selenium。即可完成selenium库的安装。
如果出现以下:
Error: connect time out
安装超时可以用以下镜像源:pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
2、第一个Web自动化脚本
import time
from selenium import webdriver
# 创建浏览器对象,打开浏览器,http://npm.taobao.org/mirrors/chromedriver/
driver = webdriver.Chrome()
# 如果你的浏览器,打开会自动关闭,可以通过sleep让它暂时不关闭
time.sleep(10)
2.1 webdriver配置
方式一:最新版本的selenium会根据浏览器版本自动去下载driver文件,前提是: 环境是可以连外网的,但下载是需要时间
方式二:将webdriver.exe配置为环境变量
点击系统变量->Path->编辑->新建->粘贴Chromedriver的地址
方式三:
创建driver对象时,填写存放driver相对路径:webdriver.Chrome(‘…/lib/chromedriver.exe’)
2.2网页元素操作
1.定位元素
定位一个元素 |
定位多个元素 |
含义 |
find_element_by_id |
find_elements_by_id |
通过元素id定位 |
find_element_by_xpath |
find_elements_by_xpath |
通过xpath表达式定位 |
find_element_by_name |
find_elements_by_name |
通过name表达式定位 |
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选择器进行定位 |
- id:在元素里面的,id=“xxx” (id是唯一的)
ele = driver.find_element(‘id’,‘fm-login-id’)
或 ele = driver.find_element(By.ID,‘fm-login-id’)
- name:在元素里面的,name=“xxx” (name不一定唯一)
ele = driver.find_element(‘name’,‘fm-login-id’)
- class name:在元素里面的,class=“xxx” (class基本不唯一)
ele = driver.find_element(‘class name’,‘fm-text’)
- tag name:在元素最前面<后面这个单词,就是tagname (肯定不唯一)
ele = driver.find_element(‘tag name’,‘input’)
- link text:在标签中间的文本,我们叫链接文本 (不一定唯一)
ele = driver.find_element(‘link text’,‘淘宝网’)
- partial link text:在标签中间的文本包含某个文本就可以 (不一定唯一)
ele = driver.find_element(‘partial link text’,‘淘宝’)
- css selector:在元素dom结构上,右键-copy-copy selector
ele = driver.find_element(‘css selector’,‘#fm-login-id’)
- xpath:在元素dom结构上,右键-copy-copy xpath
默认复制的xpath就已经兼容了ID定位(所以推荐使用)
ele = driver.find_element(‘xpath’,‘//*[@id=“fm-login-id”]’)
推荐使用定位方式:
优先使用id(唯一性)
统一使用xpath(通用性)
2.操作元素
常用操作
操作方法 |
说明 |
示例 |
send_keys() |
输入 |
driver.find_element(‘xpath’,‘//*[@id=“password”]’).send_keys(‘123456’) |
click() |
点击 |
driver.find_element(‘xpath’,‘//*[@id=“login”]’).click() |
text |
获取文本 |
nickname = driver.find_element(‘xpath’,‘//a[@class=“red userinfo”]’).text |
get_attribute() |
get_attribute 获取属性(元素里面 属性=值,都可以通过它获取 |
get_attribute(‘textContent’)获取元素标签的内容(文本信息)、get_attribute(‘innerHTML’)获取元素内的全部HTML、get_attribute(‘outerHTML’)获取包含选中元素的HTML |
3.创建第一个自动化脚本
import time
from selenium import webdriver
driver=webdriver.Chrome('../../lib/chromedriver')
driver.get("https://login.taobao.com/member/login.jhtml?spm=a21bo.jianhua.0.0.56752a89wR1T5S&f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F")
ele=driver.find_element('xpath','//*[@id="fm-login-id"]').send_keys('xxxxx')
driver.find_element('xpath','//*[@id="fm-login-password"]').send_keys('xxxxx')
driver.find_element('xpath','//*[@id="login-form"]/div[4]/button').click()
time.sleep(4)
driver.quit()