环境搭建
①. 基于Python环境搭建,安装selenium包,pip install selenium(2.48.0)
②. 本地安装浏览器驱动,驱动下载完的chromedriver.exe放在chrome安装路径下的application下,并将该路径添加到path环境变量
示例代码
# 1. 导包
from selenium import webdriver
from time import time
# 2. 创建浏览器驱动对象
# Firefox浏览器:
driver = webdriver.Firefox()
# Chrome浏览器:
driver = webdriver.Chrome()
# Edge浏览器:
driver = webdriver.Edge()
# 3. 打开Web页面
driver.get("http://www.baidu.com/")
# 4. 暂停
time.sleep(3)
# 5. 关闭驱动对象
driver.quit()
onload
函数被触发了),才把程序的控制权交给你的测试或者脚本。 但是如果你的页面用了太多的AJAX,那么这个机制就没什么卵用了,因为它不知道页面到底是什么时候加载完。如果你需要确定页面完全加载完了,你可以使用waits
浏览器、元素操作
1. 常见的元素三类操作
① 需要让脚本模拟用户给指定元素输入值 send_keys(value)
② 需要让脚本模拟人为删除元素的内容 clear()
③ 需要让脚本模拟点击操作 click()
2. 常见的浏览器操作**,示例,driver.maximize_window()**
① maximize_window() 最大化浏览器窗口 --> 模拟浏览器最大化按钮
② set_window_size(width, height) 设置浏览器窗口大小 --> 设置浏览器宽、 高(像素点)
③ set_window_position(x, y) 设置浏览器窗口位置 --> 设置浏览器位置
④ back() 后退 --> 模拟浏览器后退按钮
⑤ forward() 前进 --> 模拟浏览器前进按钮
⑥ refresh() 刷新 --> 模拟浏览器F5刷新
⑦ close() 关闭当前窗口 --> 模拟点击浏览器关闭按钮
⑧ quit() 关闭浏览器驱动对象 --> 关闭所有程序启动的窗口
⑨ title 获取页面title
⑩ current_url 获取当前页面UR
3. 获取元素常见信息
① size 返回元素大小
② text 获取元素的文本
③ get_attribute(“xxx”) 获取属性值, 传递的参数为元素的属性名
④ is_displayed() 判断元素是否可见
⑤ is_enabled() 判断元素是否可用
⑥ is_selected() 判断元素是否选中, 用来检查复选框或单选按钮是否被选中
4. 模拟鼠标操作
说明: 在Selenium中将操作鼠标的方法封装在ActionChains类中
实例化对象:
action = ActionChains(driver)
方法:
l context_click(element) 右击 --> 模拟鼠标右键点击效果
l double_click(element) 双击 --> 模拟鼠标双击效果
l drag_and_drop(source, target) 拖动 --> 模拟鼠标拖动效果
l move_to_element(element) 悬停 --> 模拟鼠标悬停效果
l perform() 执行 --> 此方法用来执行以上所有鼠标操作
为了更好的学习其他方法, 我们先学习perform()执行方法,因为所有的方法都需要执行才能生效
1. 导包: from selenium.webdriver.common.action_chains import ActionChains 2. 实例化ActionChains对象: action = ActionChains(driver) 3. 调用右键方法: action.context_click(element) 4. 执行: action.perform()
5. 模拟键盘输入
常用的键盘操作:
l send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
l send_keys(Keys.SPACE) 空格键(Space)
l send_keys(Keys.TAB) 制表键(Tab)
l send_keys(Keys.ESCAPE) 回退键(Esc)
l send_keys(Keys.ENTER) 回车键(Enter)
l send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
l send_keys(Keys.CONTROL,‘c’) 复制(Ctrl+C)
导包: from selenium.webdriver.common.keys import Keys from selenium import webdriver driver = webdriver.Firefox() driver.get(url) element = driver.find_element_by_id("") element.send_keys(Keys.ENTER)
下拉框的选择、弹出框、多窗口切换