鼠标操作:双击、右击、悬停、拖拽、按键管理

用户输入操作:单选,多选,select,快捷键

文件上传:JS去修改网页

一.鼠标操作

1. 悬停

# 鼠标悬停(哪个元素)
el = browser.find_element(By.XPATH, "//a[contains(text(),'HTML / CSS')]")
# 悬停,ActionChains下面的动作方法必须要再机上perform()才能生效
ActionChains(browser).move_to_element(el).perform()

进行元素定位时,先将窗口最大化,防止元素不可见。

import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import Byclass TestDemo:def test_01(self):with webdriver.Chrome(executable_path='chromedriver96.exe') as browser:browser.implicitly_wait(10)browser.get("https://www.runoob.com/html/html-tutorial.html")# 最大化窗口browser.maximize_window()# 鼠标悬停(哪个元素)el = browser.find_element(By.XPATH, "//a[contains(text(),'HTML / CSS')]")# 悬停,ActionChains下面的动作方法必须要再机上perform()才能生效ActionChains(browser).move_to_element(el).perform()time.sleep(5)

运行后,浏览器效果:

2.双击

# 鼠标悬停(哪个元素)
el = browser.find_element(By.XPATH, "//a[contains(text(),'HTML / CSS')]")
# 双击
ActionChains(browser).double_click(el).perform()

3.右击

# 鼠标悬停(哪个元素)
el = browser.find_element(By.XPATH, "//a[contains(text(),'HTML / CSS')]")
# 右击
ActionChains(browser).context_click(el).perform()

4.拖拽

# 鼠标拖拽(开始元素,结束元素)
el_start = browser.find_element('id', "draggable")
el_end = browser.find_element('id', "droptarget")
# 拖拽,ActionChains下面的动作方法必须要再机上perform()才能生效
ActionChains(browser).drag_and_drop(el_start, el_end).perform()
import time
from selenium import webdriver
from selenium.webdriver import ActionChainsclass TestDemo:def test_01(self):with webdriver.Chrome(executable_path='chromedriver96.exe') as browser:browser.implicitly_wait(15)browser.get("https://demos.telerik.com/kendo-ui/dragdrop/index")# 最大化窗口browser.maximize_window()# 鼠标拖拽(开始元素,结束元素)el_start = browser.find_element('id', "draggable")# 把该元素挪动到可视范围之内el_start.location_once_scrolled_into_viewel_end = browser.find_element('id', "droptarget")# 拖拽,ActionChains下面的动作方法必须要再机上perform()才能生效ActionChains(browser).drag_and_drop(el_start, el_end).perform()time.sleep(5)

二.用户输入

1.send_keys()

输入字符,查看源码可知send_keys所需参数是不定长参数

browser.find_element('id', 'kw').send_keys('python')

2.单选/多选/select

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>py44</title>
</head>
<body>
<form><div>单选:<input type="radio" name="gender" value="male">男<input type="radio" name="gender" value="female">女</div><div>多选:<input type="checkbox" name="checkbox" value="a">a<input type="checkbox" name="checkbox" value="b">b<input type="checkbox" name="checkbox" value="c">c</div><div><select name="myselect"><option>选项1</option><option>选项2</option><option>选项3</option></select></div>
</form>
</body>
</html>

想要引用本地创建的html网页时,需要在本地文件夹内打开html文件(谷歌浏览器),获取浏览器的地址,不要在pycharm中打开(否则不能通过selenium打开)。

import time
from selenium import webdriver
from selenium.webdriver.common.by import Byclass TestDemo:def test_01(self):with webdriver.Chrome(executable_path='chromedriver96.exe') as browser:browser.implicitly_wait(15)browser.get("file:///D:/PycharmProjects/day37_%E6%B5%8F%E8%A7%88%E5%99%A8%E6%93%8D%E4%BD%9C/radio.html")# 最大化窗口browser.maximize_window()# 单选browser.find_element(By.XPATH, "//input[@value='female']").click()# 多选框browser.find_element(By.XPATH, "//input[@value='a']").click()browser.find_element(By.XPATH, "//input[@value='c']").click()# 下拉框,避免定位不到下拉框中的内容时,可以先定位最外层元素,一般不需要# browser.find_element(By.NAME, "myselect").click()browser.find_element(By.XPATH, "//option[text()='选项3']").click()time.sleep(3)

运行后,浏览器效果:

3.快捷键/组合键

# Keys.ENTER表示回车,更多快捷键查看Keys源代码
browser.find_element('id', 'kw').send_keys('python', Keys.ENTER)
# 第二种情况,ctrl+c (+ctrl松开),ctrl+v 组合键
actions = ActionChains(browser)
# 复制粘贴
actions.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
actions.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
# 复制粘贴会将原本内容覆盖
actions.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
import time
from selenium import webdriver
from selenium.webdriver import Keys, ActionChainsdef test_hotkey():url = 'https://www.baidu.com/'with webdriver.Chrome(executable_path='chromedriver96.exe') as browser:browser.implicitly_wait(15)browser.get(url)# 最大化窗口browser.maximize_window()# Keys.ENTER表示回车# browser.find_element('id', 'kw').send_keys('python', Keys.ENTER)browser.find_element('id', 'kw').send_keys('python')# 第二种情况,ctrl+c (+ctrl松开),ctrl+v 组合键actions = ActionChains(browser)# 复制粘贴actions.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()actions.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()# 复制粘贴会将原本内容覆盖actions.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()actions.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()actions.key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()time.sleep(5)

web页面:浏览器操作相关推荐

  1. 简述php和web交互过程,PHP与Web页面交互操作实例分析

    PHP与Web页面交互操作实例分析,表单,数组,参数,字符串,属性 PHP与Web页面交互操作实例分析 易采站长站,站长之家为您整理了PHP与Web页面交互操作实例分析的相关内容. 本文实例讲述了PH ...

  2. elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    文章目录 一.基本了解 1.1 插件分类 1.2 插件管理命令 二.分析插件 2.1 es中的分析插件 2.1.1 官方核心分析插件 2.1.2 社区提供分析插件 2.2 API扩展插件 三.Head ...

  3. 关于运行本地web页面浏览器出现安全拦截提示问题

    解决方案大概有两种: 1.设置IE的选项:"工具"->"internet 选项"->"高级"->"安全" ...

  4. Solr 16 - Solr中添加、更新、删除数据的几种方式 (在URL上或Web页面中操作)

    目录 1 添加/更新索引数据 1.1 JSON格式的操作 1.2 XML格式的操作 2 删除索引数据 2.1 删除符合特定条件的数据 2.2 删除指定ID的数据 2.3 删除全部索引数据 3 在doc ...

  5. 手机端 html 怎么分享到朋友圈,【Web前端问题】移动web页面如何实现分享到微信、QQ等分享功能?...

    移动web页面(浏览器打开的web应用,非App内置的Web页面)内有分享按钮,点击可分享到朋友圈,微信好友,QQ...... 据说是使用相关插件,求指导! 回答: 如果不是app内置web页面,只能 ...

  6. (转)基于Metronic的Bootstrap开发框架经验总结(9)--实现Web页面内容的打印预览和保存操作...

    http://www.cnblogs.com/wuhuacong/p/5147368.html 在前面介绍了很多篇相关的<Bootstrap开发框架>的系列文章,这些内容基本上覆盖到了我这 ...

  7. 浏览器安全——Web页面安全浏览器网络安全(HTTPS)浏览器系统安全

    一.Web页面安全 同源和跨域: 什么是同源?如果两个页面拥有相同的协议(scheme).域名(host)和端口(port)(http默认port80,https默认端口号443),那么这两个页面具有 ...

  8. 【护眼阅读】PC端通过主流常用浏览器打开本地WEB页面阅读本地TXT小说

    自用-通过WEB页面阅读本地小说,生成章节导航,设置字色和背景色达到护眼目的,HTML+CSS+JS 章节导航 需求分析 HTML代码 CSS代码 JS代码 总结 章节导航 从分析需求入手,查找资料, ...

  9. 设置Web页面试用手机浏览器(iphone)

    如果WEB页面没有经过特殊处理,在iphone浏览器上看页面会变的很小.可以在HEAD里用 META设置页面试用iphone浏览器, 设置如下: <meta content="widt ...

  10. java 情况浏览器缓存_JavaWeb禁止浏览器缓存当前Web页面的方法

    所谓浏览器缓存,是指当第一次访问网页时,浏览器会将这些网页缓存到本地,当下一次再访问这些被缓存的网页时,浏览器就会直接从本地读取这些网页的内容,而无需再从网络上获取. 虽然浏览器提供的缓存功能可以有效 ...

最新文章

  1. 2022-2028年中国盲盒产业研究及前瞻分析报告
  2. Linux下VS Code中C/C++开发环境的includePath设置
  3. android backlight
  4. 牛顿-拉夫逊法进行潮流计算matlab源程序
  5. Electron项目怎样打包成桌面exe应用
  6. 双网卡主机配置oracle监听,VirtualBox设置双网卡实现虚机上网及主宿机互访
  7. SpringMVC对日期类型的转换
  8. 【JUnit】Junit命令行执行、参数化执行、Main方法执行
  9. 水文勘测工比赛计算机基本应用,第四届全国水文勘测工大赛内业操作试题A卷.doc...
  10. 准备创业或刚创业的朋友必读
  11. 15个常用的javaScript正则表达式
  12. 在Windows下编译OpenSSL(VS2005)
  13. 用友U8审批流相关开发
  14. apicloud开发之使用usb真机同步到安卓虚拟机
  15. Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】
  16. ES6三种暴露方法详解
  17. Unity特效制作规范
  18. rn react native PanResponder手势动画 实现窗口拖动 滑动动画 Animated
  19. Android轻松实现高效的启动页
  20. vue 报错avoid mutating a prop directly since the value will be overwritten whenever

热门文章

  1. nginx单点故障怎么破?
  2. 集成友盟第三方实现QQ微信登录遇到的坑
  3. OpenGL 实现视频编辑中的转场效果
  4. ExcelVBA之MsgBox函数的运行值结果
  5. JavaScript--键盘控制div移动
  6. 从mysql2ch到synch,一次重构与升级
  7. Mysql 主键 联合主键 索引 唯一索引 被抠细节问死的问题
  8. 基于LSTM三分类的文本情感分析,采用LSTM模型,训练一个能够识别文本postive, neutral, negative三种
  9. 海信电视E7H和E5H哪个好?有什么区别
  10. 媒体查询、px和rem转换、浏览器兼容、手机端视频播放解决方案