Python+Selenium+Unittest 之selenium11--WebDriver操作方法1-常用操作

目录

1、send_keys("输入的内容")  (输入文字)

2、clear() (清除元素内的内容)

3、click()(点击元素)

4、quit()关闭浏览器

5、refresh()(刷新浏览器页面)

6、set_window_size()和用 maximize_window()(设置浏览器窗口的大小)

7、forward()和back()(浏览器的前进和后退操作)

8、switch_to.window() (切换浏览器的窗口)


       本篇主要说下在selenium中WebDriver的常用方法,在定位到元素后,通常是需要对元素进行一些操作的,比如对按钮进行点击、在输入框中输入文字、清除输入框中的文字、对按钮进行单击、双击或者右键等一系列操作,这里就来简单说明下,我们在平时使用中常用到的几种操作。(本篇使用例子里的driver默认有前置操作 导入webdriver模块并且设置变量driver = webdriver.Chrome())

1、send_keys("输入的内容")  (输入文字)

        在前面的例子中经常能看到send_keys()这个方法,这个方法的作用是输入()内的文字到定位的元素上,比如定位到百度的搜索时框后,就可以使用send_keys()的方法去输入想要搜索的内容。

 send_keys()使用语法:

定位到的输入框.send_ksys("要输入的内容")

2、clear() (清除元素内的内容)

        clrar()的使用方法,比如在输入框中,我们已经输入了一些文字,或者默认就会有值,这时候我们想清空内容,重新输入内容的话,就可以先使用clear()清除框里的内容,然后再去进行输入。

clear()的使用语法:

要清除内容的元素.clear()

        send_keys()和clear()这里正好可以一起看下实际使用的例子:具体操作是,先打开百度首页,然后定位到输入框后,使用send_keys()输入文字“放假安排”,之后用clear()清除输入的内容。

from selenium import webdriver  #导入selenium模块的webdriver
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.find_element_by_id("kw").send_keys("放假安排")     #定位到输入框后,使用send_keys输入内容 "放假安排"
driver.find_element_by_id("kw").clear()   #之后再定位到输入框,清除之前输入的“放假安排”4个字

3、click()(点击元素)

        click()为单击元素,通常是定位到需要单击的元素后,使用click()来进行操作。比如百度首页的搜索按钮、上面的新闻、贴吧等按钮,都是在定位到需要打开的时候,在定位到的元素后面再使用click()的方法,即可进行点击操作。

click()的使用语法:

定位到需要单击的元素.click()

例子中的click()就是点击的意思,首先等位到新闻的按钮,然后需要点击按钮才能打开新的页面,这时候就可以用clik()去进行点击操作了。

from selenium import webdriver #导入selenium模块的webdriver
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.find_element_by_partial_link_text("新闻").click()    #定位到第一个包含"新闻"的按钮,并且进行点击操作

4、quit()关闭浏览器

        每当我们操作完时,有时候需要关闭浏览器,这时候就可以用quit()的方法去执行关闭浏览器的操作

quit()的使用语法:

driver.quit()

直接可以运行看下实际效果:

from selenium import webdriver #导入selenium模块的webdriver
import time      #导入时间模块
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
time.sleep(2)        #等待两秒
driver.quit()        #关闭浏览器

5、refresh()(刷新浏览器页面)

        refresh()的意思是刷新浏览器,相当于页面上使用键盘的F5去进行刷新一样。

refresh()的使用语法:

driver.refresh()        #刷新浏览器页面

可以看下具体操作,进入到页面后,点击刷新。

from selenium import webdriver #导入selenium模块的webdriver
import time
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.find_element_by_class_name("s_ipt").send_keys("放假安排")   #定位到输入框,然后输入框输入 放假安排
driver.find_element_by_id("su").click()   #定位到百度一下按钮,然后进行点击
time.sleep(4)         #等待4秒
driver.refresh()      #刷新页面

6、set_window_size()和用 maximize_window()(设置浏览器窗口的大小)

        有时候我们需要控制浏览器的大小来进行UI的测试,这时候就可以使用set_window_size()和用 maximize_window(),set_window_size()可以再括号里填写宽和高,来手动对浏览器进行参数设置,而maximize_window()是默认将浏览器的页面设置为最大化。

set_window_size()和用 maximize_window()的使用语法:

driver.set_window_size(宽,高)         #设置浏览器页面的宽和高
driver.maximize_window()        #设置浏览器页面的大小为最大

这里看下浏览器大小的实际效果:

from selenium import webdriver #导入selenium模块的webdriver
import time        #导入时间模板
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.set_window_size(200,600)         #设置浏览器的大小为200*600
time.sleep(3)             #等待3s
driver.maximize_window()     #设置浏览器大小为最大

7、forward()和back()(浏览器的前进和后退操作)

        forward()和back()是用来控制浏览器页面的前进和后退的,比如有时候我们不小心点错进入到下个页面,或者有要求是进入到下个页面,然后再退回到之前的页面,这时候就可以用back()的方法使浏览器回退到刚刚打开的网页,而forward()则是控制浏览器前进的,进入到下个页面,实际效果就是浏览器左上角的这两个按钮。

forward()和back()的使用语法:

driver.forward()       #页面进行前进的操作,前提是有可前进的页面
driver.back()          #页面进行后退操作,其前是有可后退的页面

        可以执行下下面代码简单看下具体的页面跳转。

from selenium import webdriver #导入selenium模块的webdriver
import time      #导入time模块
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.find_element_by_class_name("s_ipt").send_keys("放假安排")   #定位到输入框,然后输入框输入 放假安排
driver.find_element_by_id("su").click()   #定位到百度一下按钮,然后进行点击
time.sleep(2)          #等待2秒
driver.find_element_by_link_text("资讯").click()     #找到资讯按钮,然后点击
time.sleep(2)        #等待2秒
driver.back()        #页面回退到上个页面
time.sleep(2)         #等待2秒
driver.forward()     #页面前进到下个页面

8、switch_to.window() (切换浏览器的窗口)

        有的时候我们在操作浏览器时,会打开多个页面,这时候我们需要切换页面的话就需要用到switch_to.window()的方法去选择我们想要操作的页面。

switch_to.window()的使用语法:

window_handles = driver.window_handles          #获取页面的handles
driver.switch_to.window(window_handles[0])    #切换到最初始的页面
driver.switch_to.window(window_handles[1])    #切换到第二个打开的页面
driver.switch_to.window(window_handles[-1])   #切换到最后一个打开的页面

        看个实际例子,这里是首先打开百度的首页,这里就是打开的第一个页面,之后定位到新闻并点击,这时会打开第二个页面,这时候就可以用下标[1]或者[-1],来进行打开操作。具体看下实例。

from selenium import webdriver #导入selenium模块的webdriver
import time      #导入时间模块
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.find_element_by_partial_link_text("新闻").click()    #定位到新闻,然后进行点击,此时打开一个新的页面
window_handles = driver.window_handles          #获取页面的handles
time.sleep(2)                    #等待两秒
driver.switch_to.window(window_handles[0])      #切换到第一个页签
time.sleep(2)               #等待两秒
driver.switch_to.window(window_handles[1])      #切换到第二个页签上

        


       如果大家在使用过程中遇到了问题,可以在文章下留言,或者关注公众号:刘阿童木的进化记录,进行留言

                   下图为公众号二维码,内容会同步发出,大家可以关注一起学习!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是BitTorrent协议?

BitTorrent 是一个 P2P (Peer-to-Peer) 通信协议,它设计用于分发数据和电子文件在互联网上。BitTorrent 是目前世界上最流行的 P2P 文件共享协议之一,以下是对 BitTorrent 协议的详细解释: 种子和对等体: 种子(Torrent…

腾讯云服务器远程连接的方法大全

腾讯云服务器怎么连接登录?腾讯云服务器支持多种远程连接方法,可以使用腾讯云管理控制台自带的远程连接工具,也可以使用第三方远程连接工具,如如PuTTY、Xshell等,Linux操作系统可以SSH登录,Windows可以使用…

Chrome有些网站打不开,但是火狐可以打开

Chrome有些网站打不开,但是火狐可以打开 问题描述火狐成功界面谷歌报错界面局域网设置使用代理服务器访问成功 解决方案参考 问题描述 开了一个tizi,Chrome不能使用,火狐可以。之前装过插件Ghelper白嫖科学上网,那次之后好像浏览…

最短路相关思想总结

dijkstra—所有边均为正权边 1.稠密图 算法思想 将所有的点读入邻接表 外层n次循环 每次找到最近的点,记录这个点的访问状态,使用这个点对其他的点进行更新,最后返回最短路 为什么要记录每个点的状态?我不能重复搜这个点吗&…

Stable Diffusion Webui源码剖析

1、关键python依赖 (1)xformers:优化加速方案。它可以对模型进行适当的优化来加速图片生成并降低显存占用。缺点是输出图像不稳定,有可能比不开Xformers略差。 (2)GFPGAN:它是腾讯开源的人脸修…

02 - git 文件重命名

第一种方式: mv kongfu_person.txt kongfu.txt git add .第二种方式: git mv kongfu_person.txt kongfu.txt

【uniapp】滚动相关

1、滚动到一定区域,顶部内容置换并置顶 功能: 当我向下滚动时,当关注那一行快到顶部的时候,把左侧区域的内容切换成右侧区域的内容,并置顶 原先我使用v-if来显示隐藏,发现会出现闪屏的现象,后来…

nodejs+vue+elementui美食网站的设计与实现演示录像2023_0fh04

本次的毕业设计主要就是设计并开发一个美食网站软件。运用当前Google提供的nodejs 框架来实现对美食信息查询功能。当然使用的数据库是mysql。系统主要包括个人信息修改,对餐厅管理、用户管理、餐厅信息管理、菜系分类管理、美食信息管理、美食文化管理、系统管理、…

【Redis】Redis内存过期策略和内存淘汰策略

【Redis】Redis内存过期策略和内存淘汰策略 文章目录 【Redis】Redis内存过期策略和内存淘汰策略1. 过期策略1.1 惰性删除1.2 周期删除1.2.1 SLOW模式1.2.2 FAST模式 2. 淘汰策略 1. 过期策略 Redis本身是一个典型的key-value内存存储数据库,因此所有的key、value都…

负载均衡–HAProxy安装及搭建tidb数据库负载服务

作为一名开发人员,随着经验的增加和技术的沉淀,需要提高自己架构方面的知识,同时对于一个企业来说,搭建一套高可用、高性能的技术架构,对于公司的业务开展和提高服务的性能也是大有裨益的。本文重点从软件安装和搭建ti…

基于Dlib库+SVM+Tensorflow+PyQT5智能面相分析-机器学习算法应用(含全部工程源码)+训练及测试数据集

目录 前言总体设计系统整体结构图系统流程图模型流程 运行环境Python 环境TensorFlow环境界面编程环境 模块实现1. 数据预处理2. 模型构建1)定义模型结构2)交叉验证模型优化 3. 模型训练及保存4. 模型测试1)摄像头调用2)模型导入及…

RCNA——单臂路由

一,实验背景 之前的VLAN实现的很多都是相同部门互相访问,不同部门无法访问。不过这次整来了一个路由器,领导说大部分的部门虽说有保密信息需要互相隔离,但是这些部门和其它部门也应该互相连通以方便工作交流。因此要配置新的环境&…

无人机光伏巡检系统的全新作用解析,提升效率保障安全

随着光伏发电行业的快速发展,光伏电站的规模越来越大,光伏维护和巡检成为一个巨大的挑战。为解决传统巡检方法的低效率和安全风险问题,无人机光伏巡检系统应运而生,并成为提升光伏巡检效率和保障安全的利器。 首先,无人…

vue手写多对多关联图,连线用leader-line

效果如图 鼠标滑动效果 关联性效果 <template ><div class"main" ref"predecessor"><div class"search"><div class"search-item"><div class"search-item-label">部门</div><Trees…

C++——关于命名空间

写c项目时&#xff0c;大家常用到的一句话就是&#xff1a; using namespace std; 怎么具体解析这句话呢&#xff1f; 命名冲突&#xff1a; 在c语言中&#xff0c;我们有变量的命名规范&#xff0c;如果一个变量名或者函数名和某个库里面自带的库函数或者某个关键字重名&…

涛思数据联合长虹佳华、阿里云 Marketplace 正式发布 TDengine Cloud

近日&#xff0c;涛思数据联合长虹佳华&#xff0c;正式在阿里云 Marketplace 发布全托管的时序数据云平台 TDengine Cloud&#xff0c;为用户提供更加丰富的订购渠道。目前用户可通过阿里云 Marketplace 轻松实现 TDengine Cloud 的订阅与部署&#xff0c;以最低的成本搭建最高…

【数学建模】--灰色关联分析

系统分析: 一般的抽象系统&#xff0c;如社会系统&#xff0c;经济系统&#xff0c;农业系统&#xff0c;生态系统&#xff0c;教育系统等都包含有许多种因素&#xff0c;多种因素共同作用的结果决定了该系统的发展态势。人们常常希望知道在众多的因素中&#xff0c;哪些是主要…

3.6 Spring MVC文件上传

1. 文件上传到本地 实现方式 Spring MVC使用commons-fileupload实现文件上传&#xff0c;注意事项如下&#xff1a; l HTTP请求方法是POST。 l HTTP请求头的Content-Type是multipart/form-data。 SpringMVC配置 配置commons-fileupload插件的文件上传解析器CommonsMultip…

vue二进制下载

封装axios&#xff0c;/api/request import axios from axios import store from /store import Vue from vue import { Message, MessageBox } from element-uiimport { getToken } from /utils/authaxios.defaults.headers[Content-Type] application/json;charsetutf-8 co…

如何选择适合自己的文件传输工具

随着互联网的发展&#xff0c;人们处理文件的需求也随之增加。不管是工作还是生活中&#xff0c;文件传输都是一个非常常见的问题。因此&#xff0c;如何选择适合自己的文件传输工具也越来越重要。在本文中&#xff0c;我将从以下几个方面进行分析和总结&#xff0c;希望能为大…