1、Selenium对元素常用操作

操作 说明
click() 单击元素
send_keys() 模拟输入
clear() 清除文本
submit() 点击提交

示例,页面代码片段如下

<!DOCTYPE html>
<html lang="zh-cn">
<body>
<div id="zc">
<legend>注册用户A</legend>
<p id="p1">
<label for="userA">账号A</label>
<input type="textA" name="userA" id="userA" class="c_uA" placeholder="账号A" required="" value="">
</p>
<p>
<label for="password">密码A</label>
<input type="password" name="passwordA" id="passwordA" placeholder="密码A" value="">
</p>
<p><a href="http://www.baidu.com" id="fwA">访问 百度 网站</a></p>
</div>
</body>
</html>

脚本代码

"""
1.学习目标:
必须掌握selenium中元素的输入,点击,清空
2.语法
2.1 点击
元素.click()
2.2 输入
元素.send_keys(输入的内容)
2.3 清空
元素.clear()
2.4 提交
元素.submit()
3.需求
在页面中,完成元素的输入,点击,清空,提交
4.总结
在对输入框进行输入操作时,先清空再输入(要记住)
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os # 2.打开浏览器
driver = webdriver.Chrome() # 3.打开页面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url) # 4.对账号A输入框做输入和清空操作,点击新浪网站连接
# 4.1 定位输入框和百度超链接
# 定位账号A输入框
textA = driver.find_element_by_id("userA")
# 定位百度超链接
baidu = driver.find_element_by_link_text("访问 百度 网站") # 4.2 输入文字,清空
# 在账号A中输入Selenium
textA.send_keys("Selenium")
sleep(2)
# 清空账号A中的输入内容
textA.clear()
sleep(2) # 4.3 点击百度超链接
baidu.click() # 4.4 定位百度输入框
baidu_element = driver.find_element_by_id("kw") # 4.5 在输入框中输入【心善渊&Selenium基础】
baidu_element.send_keys("【心善渊&Selenium基础】")
sleep(5)
# 4.6 定位按钮 百度一下
yixia_element = driver.find_element_by_id("su") # 4.7 点击百度一下
"""
submit()调用提交,
submit()的作用等同于click(),
但是click()的使用面要更广一些。
"""
yixia_element.submit() # 5.关闭浏览器
sleep(2)
driver.quit()

补充

  • click()方法:就是单纯的点击下,或者说是单击下鼠标左键,更强调是一个独立性的事件。
  • submit()方法:一般使用在有form标签的表单中,把form表单中的信息提交到后台。submit()方法主要用于对信息进行提交,也可以使用click()方法进行代替。

2、Selenium对元素的其他操作

如下表:

操作 说明
size 返回元素大小(长宽像素)
text 获取元素的文本(两个标签之间的文字)
get_attribute("xxx") 获取属性值,xxx表示元素中要获取的属性
is_display() 判断元素是否可见,也就是在页面中是否可见
is_enabled() 判断元素是否可用
title 获取页面title
current_url 获取当前页面URL

提示:

  • sizetexttitlecurrent_url:为属性,调用时无括号。如:元素.size

  • is_display()is_enabled():为方法,调用时需要括号。如:元素.is_display().

  • titlecurrent_url:使用浏览器实例化对象直接调用。 如: driver.title

示例,页面代码片段如下

<!DOCTYPE html>
<html lang="zh-cn">
<body>
<div id="zc">
<title>注册A</title>
<button type="submitA" name="First button" value="注册A" title="加入会员A">注册用户A</button>
</div>
</body>
</html>

脚本代码

"""
1.学习目标:
掌握selenium中元素的其他操作
2.语法
2.1 size 获取元素大小
元素.size
2.2 text 获取元素文本(掌握)
元素.text 2个标签之间的文字
2.3 get_attribute() 获取元素属性(掌握)
元素.get_attribute("属性名")
2.4 is_displayed() 判断元素是否可见(掌握)
元素.is_displayed()
2.5 is_enabled() 判断元素是否可用(掌握)
元素.is_enabled()
2.6 获取页面标题
driver.title
2.7 获取当前页面url
driver.current_url
3.需求
在页面中,完成上面操作。
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os # 2.打开浏览器
driver = webdriver.Chrome() # 3.打开页面
url = "file:///" + os.path.abspath("./2.html")
driver.get(url) # 4.元素其他操作---按钮
button = driver.find_element_by_css_selector("button[type='submitA']") # 4.1 获取元素大小
print("元素大小:", button.size) # 4.2 获取元素文本
print("元素文本:", button.text) # 4.3 获取元素属性
print("元素的value属性值:", button.get_attribute("value"))
print("元素的title属性值:", button.get_attribute("title"))
# 没有的属性为空,什么都不打印,但不报错
print(button.get_attribute("id")) # 4.4 判断元素是否可见
print("button按钮是否可见:", button.is_displayed()) # 4.5 判断元素是否可用
print("button按钮是否可用:", button.is_enabled()) # 4.6 获取页面标题
print("页面的title:", driver.title) # 4.7 获取当前页面url
print(driver.current_url) # 5.关闭浏览器
sleep(2)
driver.quit()
"""
输出结果:
元素大小: {'height': 23, 'width': 78}
元素文本: 注册用户A
元素的value属性值: 注册A
元素的title属性值: 加入会员A button按钮是否可见: True
button按钮是否可用: True
页面的title: 注册A
file:///J:/PyCharmWorkSpace/firstproject/selenium/demo/2.html
"""

『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作的更多相关文章

  1. 『心善渊』Selenium3.0基础 — 24、Selenium的expected_conditions模块详细介绍

    目录 1.EC模块介绍 2.EC模块常用类 3.EC模块的使用 4.EC模块综合使用 (1)title_is(title)示例 (2)presence_of_element_located(locat ...

  2. 『心善渊』Selenium3.0基础 — 12、Selenium操作鼠标和键盘事件

    目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 ...

  3. 『心善渊』Selenium3.0基础 — 1、Selenium自动化测试框架介绍

    目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Seleniu ...

  4. 『心善渊』Selenium3.0基础 — 2、Selenium测试框架环境搭建(Windows)

    目录 1.浏览器安装 2.浏览器驱动下载 (1)ChromeDriver for Chrome (2)Geckodriver for Firefox (3)IEDriverServer for IE ...

  5. 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

  6. 『心善渊』Selenium3.0基础 — 17、Selenium操作浏览器窗口的滚动条

    目录 1.为什么操作滚动条 2.Selenium如何操作滚动条 3.Selenium操作滚动条方法 4.操作滚动条示例 5.下拉至聚焦元素的位置 (1)实现步骤: (2)实现示例: 1.为什么操作滚动 ...

  7. 『心善渊』Selenium3.0基础 — 18、使用Selenium操作浏览器的弹窗

    目录 1.操作浏览器自带弹窗 2.操作浏览器页面自定义弹窗 1.操作浏览器自带弹窗 (1)说明: webdriver中处理JavaScript所生成的alert.confirm 以及prompt 弹窗 ...

  8. 『心善渊』Selenium3.0基础 — 3、使用Selenium操作浏览器对象的基础API

    目录 1.导入Selenium库 2.创建浏览器对象 3.浏览器窗口大小设置 4.浏览器位置设置 5.请求访问网址 6.浏览器页面前进.后退和刷新 7.关闭浏览器 相比于高大上的各种Selenium进 ...

  9. 『心善渊』Selenium3.0基础 — 19、使用Selenium操作文件的上传和下载

    目录 1.Selenium实现文件上传 (1)页面中的文件上传说明 (2)文件上传示例 (3)总结 2.Selenium实现文件下载 (1)Firefox浏览器文件下载 1)操作步骤: 2)文件下载示 ...

随机推荐

  1. 成功的多项目管理都有哪些"制胜之道"?

    实施多项目管理,一个重要原因就是提高项目的效率和管理水平.除了满足时间.成本.业绩和客户需求之外,项目管理办公室(PMO)经理的预期产出还包括有效利用组织资源.下面是影响多项目管理成功的几个关键因素, ...

  2. ES6新增数组的一些思考和使用

    ES6数组的新增 伪数组转换为数组的两种方法 Array.from()把一个伪数组转换为一个真正的数组 伪数组:有下标和length,但是不能使用数组方法 let lis = document.que ...

  3. [bug] IDEA:application context not configured for this file

    参考 https://blog.csdn.net/a772304419/article/details/79680833

  4. 如何讓RHEL7/CentOS7開機過程顯示更多資訊

    rhgb選項rhgb用於圖形啟動(graphical boot-up), quiet 而quiet選項可以消除大部分啟動消息. 如何讓RHEL7/CentOS7開機過程顯示更多資訊 Arthur Ch ...

  5. 通过Dapr实现一个简单的基于.net的微服务电商系统(十六)——dapr+sentinel中间件实现服务保护

    dapr目前更新到了1.2版本,在之前4月份的时候来自阿里的开发工程师发起了一个dapr集成Alibaba Sentinel的提案,很快被社区加入到了1.2的里程碑中并且在1.2 release 相关 ...

  6. Ansible学习分享(基本)

    背景:Teamleader提到一款好用的自动化配置管理工具,于是前去学习实践,有了下面分享. 纲要 一.Ansible简介 二.Ansible准备 2.1 Ansible安装 2.2 设置SSH公钥验 ...

  7. [leetcode] 116. 填充同一层的兄弟节点

    116. 填充同一层的兄弟节点 其实就是个二叉树的层次遍历 class Solution { public void connect(TreeLinkNode root) { if (root == ...

  8. GO学习-(35) Go实现日志收集系统4

    Go实现日志收集系统4   到这一步,我的收集系统就已经完成很大一部分工作,我们重新看一下我们之前画的图: 我们已经完成前面的部分,剩下是要完成后半部分,将kafka中的数据扔到ElasticSear ...

  9. openresty 学习笔记番外篇:python的一些扩展库

    openresty 学习笔记番外篇:python的一些扩展库 要写一个可以使用的python程序还需要比如日志输出,读取配置文件,作为守护进程运行等 读取配置文件 使用自带的ConfigParser模 ...

  10. Volatile 原理及使用,java并发中的可见性问题

    1.解决并发编程中的可见性问题 volatile 代表不使用cpu缓存,修改后的数据,将直接刷到内存中,被volatile修饰的变量,读取的时候,也是从内存中读取,不从cpu缓存中读取 上代码 // ...