文章目录

  • webdriver操作元素、获取元素常用方法
  • 浏览器控制
  • 浏览器cookies
  • 鼠标事件
  • 键盘事件
    • **常用方法**
  • 上传文件
  • 内嵌网页iframe切换
  • 浏览器标签页切换
  • 页面滚动
  • 截图
  • 警告框处理
  • 下拉框处理

webdriver操作元素、获取元素常用方法

常用方法

  • clear(): 清除文本。
  • send_keys (value): 模拟按键输入(被操作元素需要是个文本输入框)。
  • click(): 单击元素。

其他方法


#size: 返回元素的尺寸。
driver.find_element_by_id("iptPassword").size
#text: 获取元素的文本。
driver.find_element_by_id("iptUsername").text
#get_attribute(name): 获得属性值。
driver.find_element_by_id("kw").get_attribute("kw")
#title:用于获得当前页面的标题
driver.title
#current_url:用户获得当前页面的URL
driver.current_url
#tag_name:返回元素的tagname
driver.find_element_by_id("iptUsername").tag_nam

浏览器控制

控制浏览器大小

# 设定具体尺寸
driver.set_window_size(600, 600)
# 最大
driver.maximize_window()
# 最小
driver.minimize_window()

前进、后退、刷新

# 前进
driver.forward()
# 后退
driver.back()
# 刷新
driver.refresh()

浏览器cookies

常用方法

  • get_cookies(): 获得所有 cookie 信息
  • get_cookie(name): 返回字典的 key 为“name”的 cookie 信息
  • add_cookie(cookie_dict) : 添加 cookie。“cookie_dict”指字典对象,必须有 name
    和 value 值
  • delete_cookie(name,optionsString):删除 cookie 信息。“name”是要删除的 cookie的名称,“optionsString”是该 cookie 的选项,目前支持的选项包括“路径”,“域”
  • delete_all_cookies(): 删除所有 cookie 信息

鼠标事件

常用方法

  • perform(): 执行操作
  • context_click(): 右击;
  • double_click(): 双击;
  • drag_and_drop(): 拖动;
  • move_to_element(): 鼠标悬停。
from selenium import webdriver
# 引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome() driver.get("https://www.baidu.cn")
#  定位到要悬停的元素
above = driver.find_element_by_link_text("设置") #  对定位到的元素执行鼠标悬停操作
ActionChains(driver).move_to_element(above).perform()

键盘事件

常用方法

  • 删除键(BackSpace)send_keys(Keys.BACK_SPACE)
  • 空格键 (Space)send_keys(Keys.SPACE)
  • 制表键(Tab) send_keys(Keys.TAB)
  • 回退键(Esc)send_keys(Keys.ESCAPE)
  • 回车键(Enter)send_keys(Keys.ENTER)
  • 全选(Ctrl+A)send_keys(Keys.CONTROL,‘a’)
  • 复制(Ctrl+C)send_keys(Keys.CONTROL,‘c’)
  • 剪切(Ctrl+X)send_keys(Keys.CONTROL,‘x’)
  • 粘贴(Ctrl+V)send_keys(Keys.CONTROL,‘v’)
  • 键盘 F1 send_keys(Keys.F1)
  • 键盘 F12send_keys(Keys.F12)
from selenium import webdriver
#  引入 Keys  模块
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome ()
driver.get("http://www.baidu.com")
#输入框输入内容
driver.find_element_by_id ("kw").send_keys("seleniumm")
#删除多输入的一个m
driver.find_element_by_id ("kw").send_keys(Keys.BACK_SPACE)

上传文件

通过输入文件路径上传

driver.find_element_by_id("albumUpload").send_keys("文件路径")

通过模拟键盘敲击上传

from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import win32com.client  # python -m pip install pypiwin32ActionChains(driver).click(driver.find_element_by_id("albumUpload")).perform()
sh = win32com.client.Dispatch("WScript.shell")
time.sleep(3)
# 1、代码不联想  2、输入法要保持英文输入状态 3、无法处理中文
sh.Sendkeys("文件路径\r\n")

上传多个文件

通过输入文件路径上传
"文件1路径\n文件2路径"
通过模拟键盘上传
'"文件1路径" "文件2路径\r\n"'

内嵌网页iframe切换

常用方法

  • switch_to.frame() 切换到iframe上
  • switch_to.default_content() 切换回原主页面
# 定位到内嵌网页
ele = driver.find_element_by_css_selector("[class=\"ke-edit-iframe\"]")
# 切入内嵌网页中
driver.switch_to.frame(ele)
driver.find_element_by_css_selector("[class=\"ke-content\"]").send_keys("123")
# 切入内嵌网页后,若想再操作内嵌网页外的元素,需要再切出来
driver.switch_to.default_content()

浏览器标签页切换

使用方法

  • current_window_handle:获得当前标签页句柄
  • window_handles:返回所有便签页的句柄
  • switch_to.window(标签页句柄):切换到对应的标签页
  • 关闭标签页使用 close 方法
win_sli = driver.window_handles  # 获取当前所有标签页的句柄# 循环所有标签,直到找到标题、url、页面元素相符的标签,就停止切换,停留在当前标签页
for win in win_sli:driver.switch_to.window(win)# 如果标签页的标题不固定,还可以用网址判断# 如果网址和标题都不固定,可以找一个目标标签页独有的元素,然后判断元素是否存在if driver.title == "OPMS-项目管理软件+OA管理软件+CRM管理软件":break

页面滚动

滚动用法

  • window.scrollBy(0,500) 向下滚动500个像素
  • window.scrollBy(0,-500) 向上滚动500个像素
  • window.scrollBy(500,0) 向右滚动500个像素
  • window.scrollBy(-500,0) 向左滚动500个像素
    selenium实现滚动
  • driver.execute_script(“window.scrollBy(0,500)”)
  • driver.execute_script(“arguments[0].scrollIntoView();”, ele)
    滚动至元素ele可见

截图

# 截图,截取全屏,参数为要保存图片的文件路径,官方建议用png格式
# 如果想截取登陆以后的界面:1、sleep  2、寻找一个登录后才有的元素
driver.get_screenshot_as_file("./a.png")# 对元素进行截图
ele = driver.find_element_by_css_selector("[class=\"nav nav-pills nav-stacked custom-nav js-left-nav\"]")
ele.screenshot("./b.png")

警告框处理

用法

  • text:返回 alert/confirm/prompt 中的文字信息
  • accept():接受现有警告框
  • dismiss():取消现有警告框
  • send_keys(“haha”):发送文本至警告框
# 获取对话框对象
al = driver.switch_to.alert
# 确认对话框
al.accept()

下拉框处理

WebDriver提供了Select类来处理下拉框。注意,只有当下拉框是 select 标签的时候使用

webdriver常用方法+鼠标键盘事件+浏览器高级操作相关推荐

  1. Selenium 利用 JS/JQ 操作元素、鼠标键盘事件、Cookie 操作

    今天是持续写作的第 26 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客主要学习 Selenium 中如何利用 JavaScript 与 JQuery 操作页面元素,以及 ...

  2. python+webdriver学习鼠标键盘事件以及定位元素

    设置浏览器大小:像素点 set_window_size(width,height) maximize_window() 浏览器全屏显示,不带参数 控制浏览器前进.后退: driver.forward( ...

  3. Python - selenium_WebDriver 鼠标键盘事件

    from selenium import webdriver #引入ActionChains类 提供了鼠标的操作方法 from selenium.webdriver.common.action_cha ...

  4. Linux 模拟 鼠标 键盘 事件

    /************************************************************************* Linux 模拟 鼠标 键盘 事件* 说明:* 以 ...

  5. c++ 读文件_第十六节:读文件,文件的创建,写文件,文件的读写以及鼠标键盘事件和图形绘制...

    读文件 //读文件 文件的创建 public 写文件 public 文件的读写 重点: 文件类主要功能:创建,读属性,写属性,删除等 文件读写操作 File类 File类的对象 用来获取文件本身的信息 ...

  6. java 模拟鼠标键盘_使用SWT模拟鼠标键盘事件

    二.使用SWT中的鼠标键盘事件 在SWT的snippets中有两个例子用来介绍这两个方法的使用,如下: (1).模拟鼠标事件 * UI Automation (for testing tools) s ...

  7. C#使用LibVLC实现播放遇到无法全屏及鼠标键盘事件问题解决

    最近开发视频播放软件使用VLC实现流媒体播放,在使用libVLC自己进行集成播放控件时发现,播放窗口picturebox不响应鼠标键盘事件,无法进行双击或鼠标全屏播放功能的实现.原因是事件被vlc s ...

  8. python pyhook监听扫码_Python——pyHook监听鼠标键盘事件

    pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...

  9. selenium webdriver模拟鼠标键盘操作

    在测试使用Selenium webdriver测试WEB系统的时候,用到了模拟鼠标.键盘的一些输入操作. 1.鼠标的左键点击.双击.拖拽.右键点击等: 2.键盘的回车.回退.空格.ctrl.alt.s ...

最新文章

  1. vue 带全选和多选的表格怎么写_vue实现下拉列表多选全选以及模糊查询的vue组件...
  2. 算法导论中求解时间复杂度的三种方法
  3. 【STM32】STM32F4时钟系统
  4. Data URI scheme 在 html 中嵌入小图片
  5. (十二)C3P0连接池使用教程
  6. linux系统用w程序,Linux w命令
  7. python命令行tab实例小妙招
  8. 地区选择控件的制作(仿中华英才网地区选择控件)
  9. motion blur matlab,Motion Blur app
  10. 027_《Delphi Direct X 图形与游戏程序设计》
  11. ios模拟器装ipa包_ios模拟器怎么安装游戏应用教程
  12. chm 打不开 解决办法
  13. java总结一:JSON转对象
  14. 拿信用卡套个首付买房子——引火自焚
  15. 对称算法与非对称算法
  16. MySQL误删怎么办
  17. 2023年湖北武汉中级工程师怎么申请?申报渠道有哪些?启程别
  18. Python入门习题大全——T恤
  19. Unity 使用陀螺仪判断手机方向
  20. 牛客练习赛59 小松鼠吃松果(优化dp二维偏序)

热门文章

  1. 线性代数张宇1000题 第六章 向量组
  2. 教你写个简单好用的Python脚本一键自动整理文件非常适合办公用~
  3. KsWEB以及Termux使用,把项目部署到手机上运行
  4. pikachu靶机安装
  5. 本题要求按照规定格式打印前N行杨辉三角。
  6. 百度云说 | 尹世明:高举百度云“ABC+IoT”大旗,六个字母打天下
  7. SCCM 2007 R2 setp by setp(五)-SQL的安装
  8. python打地鼠游戏教程_Python 0基础开发游戏:打地鼠(详细教程)VS code版本
  9. 打地鼠小游戏(HTML5+CSS+JS)
  10. 飞腾 CPU x 百度昆仑 AI 芯片!自主国产算力时代已经到来!