第三天,原本打算按照官网文档详细讲一下浏览器的操作,但是由于这些操作跟我们平时使用浏览器一样,我也就直接Ctrl+C和Ctrl+V 了。
重点说明,selenium模拟浏览器的操作太快,很容易被检测出来,遇到淘宝等厉害的网站一定要慎用。 因此,推荐使用一些配套工具(键鼠方面)进行辅助。
from selenium import webdriver
在实现标签定位的时候,如果发现定位的标签是存在于iframe标签之中的,则在定位时必须执行一个固定操作:
bro.switch_to.frame('iframe标签的id')
实例化某一款浏览器对象
browser = webdriver.Chrome(executable_path='path')
浏览器驱动程序可以放在虚拟环境的script文件夹内,后面的executable_path参数可以不写,executable_path表示的是浏览器驱动程序的路径
对网址发起请求
browser.get(url)
定位单个节点,返回的是一个webelement对象
这里看上一篇文章,专门为你讲述定位方法
element对象的操作
clear # 清除元素的内容
send_keys() # 模拟按键输入,如果需要输入中文,防止编码错误使用send_keys(u"中文用户名")。
click() # 点击元素
submit() # 提交表单
size() # 获取元素的尺寸,返回一个字典:{'x': 000, 'y': 000}
text # 获取元素的文本,我使用的版本3是不用括号,使用最新版本的请在此处自行尝试下
get_attribute(name) # 获取属性值
location() # 获取元素坐标,先找到要获取的元素,再调用该方法,返回一个字典:{'height': 000, 'width': 000}
is_displayed() # 设置该元素是否可见
is_enabled() # 判断元素是否被使用
is_selected() # 判断元素是否被选中
tag_name() # 返回元素的tagName
浏览器操作
title # 返回页面标题
page_source # 返回页面源码
current_url # 获取当前页面的URL
refresh() # 刷新浏览器
set_window_size() # 设置浏览器的大小
set_window_position() # 设置浏览器的坐标
set_window_rect() # 设置浏览器的矢量
maximize_window() # 最大化窗口
minimize_window() # 最小化窗口
close() # 关闭页面
quit() # 关闭窗口
鼠标事件
from selenium.webdriver import ActionChains
ActonChains(driver) # 构造ActionChains对象
click(on_element) # 左击
context_click(on_element) # 右键,另存为等行为
double_click(on_element) # 左键双击,地图web可实现放大功能
drag_and_drop(source,target) # 左键拖动,源元素按下左键移动至目标元素释放
drag_and_drop_by_offset(source, xoffset, yoffset) # 拖拽到某个坐标然后松开
key_down(value, element=None) # 按下某个键盘上的键
key_up(value, element=None) # 松开某个键
move_by_offset(xoffset, yoffset) # 鼠标从当前位置移动到某个坐标
move_to_element(on_element) # 鼠标悬停
move_to_element_with_offset(to_element, xoffset, yoffset) # 移动到距某个元素(左上角坐标)多少距离的位置
click_and_hold(on_element) #左键点击不松开
perform() # 在通过调用该函数执行ActionChains中存储行为
键盘事件
from selenium.webdriver.common.keys import Keys
send_keys(Keys.ENTER) # 按下回车键
send_keys(Keys.TAB) # 按下Tab制表键
send_keys(Keys.SPACE) # 按下空格键space
send_keys(Kyes.ESCAPE) # 按下回退键Esc
send_keys(Keys.BACK_SPACE) # 按下删除键BackSpace
send_keys(Keys.SHIFT) # 按下shift键
send_keys(Keys.CONTROL) # 按下Ctrl键
send_keys(Keys.ARROW_DOWN) # 按下鼠标光标向下按键
send_keys(Keys.CONTROL,'a') # 组合键全选Ctrl+A
send_keys(Keys.CONTROL,'c') # 组合键复制Ctrl+C
send_keys(Keys.CONTROL,'x') # 组合键剪切Ctrl+X
send_keys(Keys.F1…Fn) # 键盘 F1…Fn
浙公网安备 33010602011771号