自动化基础笔记--元素操作

元素操作(附带鼠标悬停)

一些课程回顾,问题原因总结
函数只有在return的时候,才会返回一个数据。返回数据了才可以赋值的
报错:

  1. 等待时间不够
  2. 返回的元素不是你想要的
  3. 确实是你表达式写错了
  4. 有句柄未切换或者有iframe未切换
  5. 定位错元素了。

元素操作

from time import sleepfrom selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.support.select import Selectdriver = webdriver.Chrome()
# 浏览器窗体的最大化
driver.maximize_window()
# 设置窗体大小尺寸
driver.set_window_size(1000, 200)# 访问指定文件和url
driver.get(r'C:\Users\asus\Desktop\xxx.jpg') 
driver.get('http://www.baidu.com')# 浏览器窗体的最小化
driver.minimize_window()# 浏览器的前进和后退,以及刷新
driver.forward()
driver.back()
driver.refresh()
# 获取title
print(driver.title)
# 元素定位
driver.find_element(定位方法,定位值)
# 页面中的元素操作都是基于元素获取之后才能够进行的。
# 输入和点击
driver.find_element('xpath', '//*[@id="form"]/span[1]/span[1]').click()
鼠标悬停
'''下拉列表框:现如今市场上基本都是基于input和div来实现的下拉列表框div,通过click来进行操作input下拉列表框:1. 通过click来进行操作(是推荐行为)2. 如果有readonly,就先remove掉,再通过send_keys输入(容易出现问题)select标签下拉列表框:是最为传统的形式,相对有年代感的系统才会存在。
'''
# select标签下拉列表框
select = Select(driver.find_element('id', 'deviceType'))
# 获取指定的值,进行选择
select.select_by_index(1)
select.select_by_value('11')
select.select_by_visible_text('自动驾驶')
# div下拉列表框与鼠标悬停
el = driver.find_element('xpath', '//span[text()="设置"]')
# 导入actionchains类进行悬停操作
ActionChains(driver).move_to_element(el).perform()
# 高级搜索
driver.find_element('link text', '高级搜索').click()
sleep(2)
driver.find_element('xpath', '//*[@id="adv-setting-gpc"]/div/div[1]').click()
sleep(1)
driver.find_element('xpath', '//p[text()="最近一月"]').click()
# 退出浏览器与进程,释放资源
driver.quit()

句柄和iframe

课程笔记

    页面元素操作时,可能会遇到有的内嵌窗体,Iframe弹出新页面时,driver还是操作着原来的页面,是因为有句柄的存在一个页面 == 一个句柄操作新的页面,就需要切换到新的句柄,是一个固化的模式1. 获取所有句柄2. 切换到新的句柄PS:如果要关闭原有的标签页,操作新的页面:1. 获取所有句柄2. 关闭原有标签页3. 切换到新句柄PPS:在操作页面时,一定注意最多保留两个页面存在,不要超过两个

总结的笔记

iframe (要切换到iframe ,但是不能操作iframe外的东西了)
在这里插入图片描述

QQ登录成功后(iframe直接关闭的情况),如果还要继续操作,需要切换回原来的页面
在这里插入图片描述

切出iframe(iframe不关闭,类似这个弹窗关闭了),需要切出
在这里插入图片描述

# 完整代码
from time import sleepfrom selenium import webdriverdriver = webdriver.Chrome()
sleep(2)
driver.maximize_window()
# 进入QQ登录
driver.get('http://music.163.com')
driver.implicitly_wait(10)
driver.find_element('link text', '登录').click()
driver.find_element('link text', '选择其他登录模式').click()
driver.find_element('id', 'j-official-terms').click()
driver.find_element('link text', 'QQ登录').click()
sleep(2)
print(driver.title)
# 打印出来是网易云音乐的# 切换句柄
handles = driver.window_handles  # 获取当前所有句柄
print(handles)# 关闭当前标签页
driver.close()
driver.switch_to.window(handles[1])  # 切换到新的句柄页
print(driver.title) # 打印出来的是“QQ帐号安全登录”# 切换到iframe:通过id,name直接切换iframe,也可以定位iframe元素,将元素作为参数传递
driver.switch_to.frame(driver.find_element('id', 'ptlogin_iframe'))
driver.find_element('id', 'img_out_508419907').click()
# 从iframe切换到默认内容
driver.switch_to.default_content()
sleep(1)
# 切换回原有句柄
driver.switch_to.window(handles[0])
sleep(1)
print(driver.title)
补充

selenium 4.0中(开启新的浏览器/不用切换句柄)
新增一个浏览器或者句柄页并且直接进行切换:通过参数来定义(tab,window)
driver.switch_to.new_window(‘tab’) # tab表示标签页,window表示浏览器
打开后新增了一个标签页,或者新的浏览器在这里插入图片描述
在这里插入图片描述
默认聚焦第一个标签页,通过new_window后可直接操作该页面(并不用再做句柄的切换)
在这里插入图片描述

'''Selenium4.0新增的关于浏览器与标签页的管理new_window()函数只支持4.0及以上版本
'''
from time import sleepfrom selenium import webdriverdriver = webdriver.Chrome()
# handles = driver.window_handles
# print(handles)
# sleep(2)
# 新增一个浏览器或者句柄页并且直接进行切换:通过参数来定义(tab,window)
driver.switch_to.new_window('tab')  # tab表示标签页,window表示浏览器
handles = driver.window_handles
print(handles)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352451.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

服务器设置了自动校时但是,同步时钟配置电脑自动校时

同步时钟配置电脑自动校时 一、同步时钟操作和指示灯说明。 同步时钟可接收全球定位系统GPS、北斗卫星信号。当GPS/北斗天线架设到屋顶时,天线的高度必须低于房屋顶避雷天线的高度,防止被雷击。 先关闭电源后再连接或者去掉天线。 电源指示灯&#xff1a…

计算机怎么关闭开机自启应用,如何关闭电脑开机自动启动的软件程序

如何关闭电脑开机自动启动的软件程序 我们在电脑中安装软件的时候,不小心设置了开机启动,该怎么取消呢?今天就跟大家介绍一下如何关闭电脑开机自动启动的软件程序的具体操作步骤。 1. 首先打开电脑,找到桌面上的【360安全卫士】软件,双击打开: 2. 进入主页面后,点击上方…

Latex使用algorithm2e包写伪代码

用Latex写伪代码我们需要用到一个包,Algorithm2e,这个工具包的使用手册下载地址为(http://mlg.ulb.ac.be/files/algorithm2e.pdf)CSDN的链接为() 准备 导入该包 \usepackage[ruled,linesnumbered]{algor…

【复杂网络建模】——基于微博数据的影响力最大化算法(PageRank)

🤵‍♂️ 个人主页:Lingxw_w的个人主页 ✍🏻作者简介:计算机科学与技术研究生在读 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 &#x1f4a…

【Markdown小技巧】 整理小图标和表情符号

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐶座右铭:总有一天你所坚持的会反过来拥抱你。 🌈写在前面: 让博客变得…

工信部—高级软件开发工程师认证

工业和信息化部教育与考试中心是工业和信息化部直属事业单位,承担计算机技术与软件专业技术资格考试、通信专业技术人员职业水平考试、电子通信行业职业技能鉴定、全国信息技术人才培养工程、产业工人网络平台建设等人才培养选拔工作。 软件工程师(Software Enginee…

EasyCVR视频汇聚智能边缘网关在多平台级联及上下级对接中的应用说明

一、行业背景 近年来,在政务数据共享平台的建设上,对国家、省数据、市数据及区县对接上要求打破“信息孤岛”,拔掉“数据烟囱”,全面打通数据“脉络”的主通道。省市平台“级联对接”工作,由国家数据共享平台、省级数据…

水球图的使用

水球图的使用 注意&#xff1a; echarts-liquidfill3 版本匹配 echarts5 版本&#xff0c;echarts-liquidfill2 版本匹配 echarts4 版本 npm install echarts-liquidfill2.0.2 --savevue代码演示&#xff1a; <template> <div class"com-container">…

python制作水球图

水球图是一种适合于展现单个百分比数据的图表类型&#xff0c;pyecharts模块能够非常方便画出水球图&#xff0c;进而实现酷炫的数据展示效果。 下面给大家介绍一下常见水球图的实现方法&#xff1a; 一、基本水球图 from pyecharts import options as opts from pyecharts.cha…

vue3实现水球图

水球图实现的方式有很多种&#xff0c;譬如&#xff1a; a.通过canvas 的sin 绘制水波实现 b.通过canvas的贝塞尔曲线实现水波 c.通过echarts的echarts-liquidfill水球图插件实现 canvas手写水球图确实也不难&#xff0c;只不过效果没有使用echarts-liquidfill插件的好&…

动态水球效果

&#xff08;1&#xff09;首先画出两条虚线之间的弧&#xff0c;以左上的那个点为原点 <div class"wave"></div> .wave { height: 100px; background-color: rgb(125, 242, 142); margin-top…

echart-水球图

Echarts学习之——水球图(echarts-liquidfill) ​ 水球图(Liquid Fill Chart)是填充仪表盘的一种,适合于展现单个百分比数据的图表类型。一般用以于显示利润,回款等财务指标。 安装 npm i echarts npm i echarts-liquidfill注意&#xff1a;echarts-liquidfill3版本匹配echar…

echarts 水球示例

使用echarts水球要先安装水球的依赖。 npm i echarts-liquidfill 代码&#xff1a; // import Common from "./common";import * as echarts from "echarts"; import "echarts-liquidfill/src/liquidFill.js";// ecahrts的水球 export defaul…

echarts-liquidfill 水球图使用

下载及文档&#xff1a;https://github.com/ecomfe/echarts-liquidfill#api 下载好之后把 echarts-liquidfill.js 导入项目即可 水球图支持非常高度定制化的需求&#xff0c;包括颜色&#xff08;color&#xff09;、大小&#xff08;radius&#xff09;、波的振幅&#xff…

android 动态水球,Canvas 制作动态进度加载水球详解及实例代码

Canvas 动态进度加载水球 前言 之前看到一些球型的动态加载的效果&#xff0c;一直想自己动手做一个&#xff0c;正好这段时间重温了一个Canvas&#xff0c;所以就尝试了一下。 实现思路 关于水波的实现&#xff0c;使用了sin()函数&#xff0c;通过每一帧不断的移动sin()函数曲…

CSS动态能量加载水球

效果如下&#xff1a; 相关代码&#xff1a; 由于水面上升的高度是动态传值控制&#xff0c;所以水面上升和波动的动画需通过js添加。 HTML&#xff1a; <div class"crystal"><div class"box"><div class"wave"></div&g…

自定义水球

效果图&#xff1a; 这里的水波纹效果实际上是用得到了数学里的正弦函数,关于正弦函数&#xff1a; 正弦型函数解析式&#xff1a;yAsin&#xff08;ωxφ&#xff09;h 各常数值对函数图像的影响&#xff1a; φ&#xff08;初相位&#xff09;&#xff1a;决定波形与X轴位置…

d3js 实现水球图

d3js 源码地址&#xff1a;: http://bl.ocks.org/brattonc/5e5ce9beee483220e2f6 官方提供的代码不能直接用&#xff0c;版本3.x 这是调整后v5能使用的。 <!DOCTYPE html> <html><head><meta charsetutf-8><meta http-equivX-UA-Compatible conte…

echarts 画动态水球

前言 在对一些需要存放液体的工厂进行开发基于物联网传感器的监控平台时&#xff0c;经常需要监控 该蓄水池当前所处的容量占比为多少。 以达到随时调整其蓄水量的目的。接下来我们看 一下一些常见的水球项目。 有这样的&#xff1a; 这样的&#xff1a; 甚至还有这样的&…

ECHARTS 水球图

转载编辑。 原作者链接地址&#xff1a;https://zhuanlan.zhihu.com/p/25353670?group_id827655855632715776 水球图是一种适合于展现单个百分比数据的图表类型&#xff0c;ECharts 的水球图插件使你能够通过非常简单的配置&#xff0c;实现酷炫的数据展示效果。 第一步&…