我们定位到Web页面元素之后,可以对元素进行一系列的操作,实现跟页面的交互。包括点击、文本输入、元素属性获取等。常用的方法列举如下:

方法 描述
click() 点击元素
send_keys(**value*) 用于向EditText(可编辑文本控件)输入文本;还可以用于输入文件(如百度图片搜索输入图片)
get_attribute(name) 获取元素属性
is_selected() 元素是否被选择,一般用于判断checkbox 或者 radio 控件状态
screenshot(filename) 截取元素

点击、输入文本

  1. 打开 https://www.baidu.com/
  2. 搜索框输入“test”
  3. 点击“百度一下”
  4. 关闭网页

python代码:

self.driver.find_element_by_id("kw").send_keys("test")
self.driver.find_element_by_id("su").click()

文件上传

input标签可以直接使用send_keys(文件地址)上传文件

打开百度图片搜索,输入图片地址

python代码:

self.driver.get("https://image.baidu.com/")
self.driver.find_element_by_xpath("//*[@id='sttb']/img[1]").click()
self.driver.find_element_by_id("stfile").send_keys(u"D:/TestingDemo/img/图片.png")

get_attribute()

获取元素属性

比如获取“百度一下”这个button的属性:type、id、value、class

python代码:

baidu = self.driver.find_element_by_id("su")
baidu.get_attribute("type")
baidu.get_attribute("id")
baidu.get_attribute("value")
baidu.get_attribute("class")

is_selected()

在勾选单选框(radio)和复选框(checkbox)的时候,如果已经被选中,再次点击就会反选了,所以在点击之前需要判断一下是否已经选中。可以使用is_selected()方法来判断是否被选中

python代码:

def checkbox_switch(self,switch="ON"):
self.driver = webdriver.Chrome()
sw = self.driver.find_element_by_id('id_of_checkbox').is_selected()
flag = False
if switch == "ON":
flag = True
if sw^flag:
self.driver.find_element_by_id('id_of_checkbox').click()
self.driver.quit()

screenshot()

截取元素

python代码:

self.driver = webdriver.Chrome()
self.driver.get("https://www.baidu.com")
element = self.driver.find_element_by_id("su")  # 百度一下的按钮
element.screenshot('D:\\baidu.png')

结果图baidu.png

也可以保存整个页面窗口截图

  • get_screenshot_as_base64()
  • get_screenshot_as_file(filename)
  • get_screenshot_as_png()
  • save_screenshot(filename)
self.driver.save_screenshot('baidu.png')

--THE END--

文章标题:Selenium Web元素操作

本文作者:hiyo

本文链接:https://hiyong.gitee.io/posts/selenium-webelement-operate/

欢迎关注公众号:「测试开发小记」及时接收最新技术文章!

Selenium Web元素操作的更多相关文章

  1. Selenium Web元素定位方法

    Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...

  2. selenium中元素操作之上传操作(六)

    上传操作分为两种情况: 1.input标签上传 如果是input可以直接输入路径的,那么直接调用send_keys输入路径,和前边的元素操作类似,在这里不再过多的赘述. 2.非input标签上传 非i ...

  3. selenium中元素操作之浏览器窗口滚动&网页日期控件操作(js操作)(五)

    js的滚动条scrollIntoView() Arguments[] - python与js之间的羁绊 1.移动到元素element对象的“底端”,与当前窗口的“底部”对齐: driver.execu ...

  4. Selenium webdriver 元素操作

    本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...

  5. selenium - 常用元素操作

    # 3.常用元素操作 # 元素对象的获取ele = driver.find_element_by_XXX('定位表达式') # 获取元素的文本内容(返回值为元素的文本)ele.text # 获取元素的 ...

  6. selenium中元素操作之简单的鼠标、键盘操作(三)

    1.鼠标操作导入类:ActionChains --鼠标的操作形成一连串的动作链,由selenium的ActionChains类来完成模拟鼠标操作手表操作的过程:1.鼠标的操作,先放到一个列表中2.利用 ...

  7. selenium页面元素操作(简易版)

    介绍一下,这是处理页面元素的基本方法,@selenium 发送文字    element.send_keys(keys_to_send) 单击    element.click() 提交表单   el ...

  8. selenium webdriver——元素操作

    #Author:xiaoxiao from selenium import webdriver import time def abcd(): driver = webdriver.Firefox() ...

  9. selenium+python元素操作

    1.判断元素的属性if i.get_attribute('type') == 'checkbox' 2.获取当前窗口的坐标 driver.get_window_position 获取当前窗口的长宽 d ...

随机推荐

  1. Eclipse中get/set方法自动生成

    代码中点击右键(快捷键Ctrl+Alt+S) ->Source ->Generate Getters and Setters... ->全选(或选择需要生成的字段/方法) 动图: 静 ...

  2. 【Linux】Linux 资料大全(100% 纯干货)

    作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14071875.html 本文章给大家分享一些 Linux 学习资料,包含:社区网站.在线教程.命令大全.在线模拟 ...

  3. Django 的缓存机制

    一 缓存介绍: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会 ...

  4. Django----Serializer序列化

    serializer的两大特征 1.校检数据 2.序列化 首先创建apps/Serializer.py 在序列化里面导包 from rest_framework import serializers ...

  5. 【GDOI2007】JZOJ2020年8月10日提高组T1 夏娜的菠萝包

    [GDOI2007]JZOJ2020年8月10日提高组T1 夏娜的菠萝包 题目 Description 夏娜很喜欢吃菠萝包,她的经纪人RC每半个月就要为她安排接下来的菠萝包计划.今天是7月份,RC又要 ...

  6. flask:蓝图--blueprint

    一.蓝图 1.什么是蓝图?(WHAT) 1)蓝图就是模块化处理的类 2)用于实现单个应用的视图.模板.静态文件的集合 总结:蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关 ...

  7. 第15.2节 PyCharm支持Python解释器的配置调整

    上节介绍了PyCharm的安装与简单使用,本节介绍PyCharm相关的配置调整,以支持在PyCharm环境下集成Python解释器进行程序的编译. 一. 工程配置调整 在执行文件前,可能需要对PyCh ...

  8. Python学习随笔:获取当前主机名和用户名的方法

    在Python中,要获取当前主机的主机名和登录用户名很简单: 使用os.getlogin():返回当前登录用户名 使用socket.gethostname():返回当前机器主机名 代码如下: > ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件autoRepeat、autoRepeatDelay、autoRepeatInterval属性

    autoRepeat.autoRepeatDelay.autoRepeatInterval这三个属性为一组属性,用于控制按钮的按下事件是否重复.重复的频次等. autoRepeat 如果启用了auto ...

  10. 【开发工具】 使用 Postman 进行接口测试 (配置全局 token,JWT可用)

    在前后端分离开发的项目中,使用postman来做接口测试会方便很多,然而因为JWT的鉴权,导致每半小时token都要更新一下,使测试变的很麻烦. 如果把token设置为全局变量,方便做测试,每次自动获 ...