文章目录
序言
常用的api操作,主要分类:
①对元素的操作,常见的就是填入内容,文件上传
②对浏览器的操作,常见就是设置窗口大小,滚动条操作,窗口前进后退,关闭浏览器,获取当前url地址,网页标题,刷新网页等
③对键盘的操作,常见的就是单个按键,复合键
④对鼠标的操作,常见的左键双击(没有单击),鼠标右键
⑤对下拉框的操作,常见的找到下拉框里的选择项进行点击操作
⑥对多窗口的操作,常见的切换窗口,关闭窗口
预备条件:环境
python+selenium的webdriver
# 从selenium导入webdriver模块
from selenium import webdriver
driver = webdriver.Chrome()
# get请求目标地址
driver.get('https://www.baidu.com/')
①对元素的操作
clear():清除元素内容
send_keys():向元素输入内容
click():单击元素
text:返回元素文本
get_attribute(‘xx’):返回元素xx属性的值
submit():对于form表单,和click()效果一样,了解一下
一个例子(带文件上传)
# 普通操作
element = driver.find_element("id","su")
element.click()
# 文件上传 这个input的type类型必须得是file
uploadFile = driver.find_element("class name","uploadFile")
uploadFile.send_keys("D:\pythonStudyCode\img\selenium.jpg")
②对浏览器的操作
maximize_window():窗口最大化
minimize_windows():窗口最小化
set_window_size(width, heigth):设置窗口的大小
forward( ):窗口前进
back( ):窗口后退
close():关闭当前窗口
quit():关闭浏览器
refresh():刷新当前窗口
title:获取当前窗口的标题
current_url:获取当前窗口的url地址
page_source:获取网页源码
execute_script(“window.scrollTo(0,300);”):滚动条从从0往下滑动300
(这里用的是js脚本,就不展开,后续了解再补充)
一个例子
driver.maximize_window()
③对键盘的操作
导入Keys键盘模块
from selenium.webdriver.common.keys import Keys
Keys.BACK_SPACE,删除
Keys.SPACE,空格
Keys.TAB,横向制表符
Keys.ENTER,回车
Keys.CONTRAL,‘a’,全选
Keys.CONTRAL,‘c’,复制
Keys.CONTRAL,‘x’,剪切
Keys.CONTRAL,‘v’,粘贴
一个例子
# ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
其他例子
https://blog.csdn.net/weixin_43968510/article/details/121048671
④对鼠标的操作
导入ActionChains鼠标操作模块
ActionChains 类
context_click():鼠标右击
double_click():鼠标左键双击
move_to_element():鼠标移动到元素上,悬停
执行的命令:
1. 重置 reset_actions
2. 执行操作 perform()
一个例子
# 鼠标悬停在某个元素上
item = driver.find_element("id","s-usersetting-top")
ActionChains(driver).move_to_element(item).perform()
⑤对下拉框的操作
导入Select下拉框模块
from selenium.webdriver.support.ui import Select
select_by_index(n):通过索引匹配,获取第n+1个项
select_by_visible_text(‘text’):通过文本匹配
select_by_value(‘value’):通过value属性值匹配
一个例子
# 选择 获取下拉框的第1项
Select(driver.find_element('id','')).select_by_index(0)
其他例子
https://blog.csdn.net/weixin_43968510/article/details/121048744
⑥对多窗口的操作
window_handles:获取所有窗口的句柄(引用),返回一个列表[]
current_window_handle:获取当前窗口的句柄
switch_to.window(‘handle’):切换到指定浏览器窗口
一个例子
# 保留当前窗口的句柄
current_window = driver.current_window_handle
# 新开一个标签页
browser1.execute_script('window.open("","_blank");')
# 切换到百度窗口上下文,第二个窗口
driver.switch_to.window(driver.window_handles[1])
细节
文件上传的input的type类型必须得是file
window.open("","_blank"); js脚本打开一个新的空白窗口
一些操作记得导入对应的模块