Selenium(三):操控元素的基本方法
1. 操控元素的基本方法
选择到元素之后,我们的代码会返回元素对应的 WebElement对象,通过这个对象,我们就可以操控元素了。
操控元素通常包括:
点击元素
在元素中输入字符串,通常是对输入框这样的元素
获取元素包含的信息,比如文本内容,元素的属性
1.1 点击元素
点击元素非常简单,就是调用元素WebElement对象的 click方法。前面已经使用过了。
当我们调用WebElement对象的click方法去点击元素的时候,浏览器接收到自动化命令,点击的是该元素的中心点位置 。
1.2 输入框
输入字符串也非常简单,就是调用元素WebElement对象的send_keys方法。前面已经使用过了。
html代码:
<h3 style="color: brown">输入框</h3>
<div>
<input id="input1" value="请输入姓名">
<br/><br/>
</div>
并且按F12,观察HTML的内容
我们要写一个自动化程序:要求在输入框中填入姓名:爱编程的小灰灰。
而且要做到输入框中已经有的提示字符,需要先清理掉。
代码应该如下:
from selenium import webdriver
wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.exe')
wd.get('http://127.0.0.1:8020/day01/index.html')
element = wd.find_element_by_id("input1")
element.clear() # 清除输入框已有的字符串
element.send_keys('爱编程的小灰灰') # 输入新字符串
1.3 获取元素信息
1.3.1 获取元素的文本内容
通过前面的学习,我们已经知道,通过WebElement对象的text属性,可以获取元素展示在界面上的文本内容。
比如:
element = wd.find_element_by_id('wolf')
print(element.text)
1.3.2 获取元素属性
通过WebElement对象的get_attribute方法来获取元素的属性值,比如要获取元素属性class的值,就可以使用element.get_attribute('class')。
html代码:
<form action="" method="post">
<input type="text" name="" id="input1" value="1" class="inputclass" />
<input type="text" name="" id="input2" value="2" class="inputclass"/>
</form>
比如:
from selenium import webdriver
wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.exe')
wd.get('http://127.0.0.1:8020/day01/index.html')
element = wd.find_element_by_id('input1')
print(element.get_attribute('class'))
执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit()。
1.3.3 获取整个元素对应的HTML
要获取整个元素对应的HTML文本内容,可以使用element.get_attribute('outerHTML')。
如果,只是想获取某个元素内部的HTML文本内容,可以使用element.get_attribute('innerHTML')。
1.3.4 获取输入框里面的文字
对于input输入框的元素,要获取里面的输入文本,用text属性是不行的,这时可以使用element.get_attribute('value')。
比如:
from selenium import webdriver
wd = webdriver.Chrome(r'E:\webdrivers\chromedriver.exe')
wd.get('http://127.0.0.1:8020/day01/index.html')
element = wd.find_element_by_id("input1")
print(element.get_attribute('value')) # 获取输入框中的文本
1.3.5 获取元素文本内容2
通过WebElement对象的text属性,可以获取元素展示在界面上的文本内容。
但是,有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。这时,用WebElement对象的text属性,获取文本内容,就会有问题。
出现这种情况,可以尝试使用element.get_attribute('innerText'),或者element.get_attribute('textContent')。
Selenium(三):操控元素的基本方法的更多相关文章
- selenium - 三种元素等待
1.sleep 休眠方法 sleep()由python的time模块提供. 当执行到sleep()方法时,脚本会定时休眠所设置的时长,sleep()方法默认参数是s(秒),sleep(2) 表示休眠2 ...
- <自动化测试>之<selenium API 查找元素操作底层方法>
搜罗了一些查找元素的除标准语句外,另外的语句使用方法,摘自 开源中国 郝云鹏driver = webdriver.Chrome(); 打开测试页面 driver.get( "http://b ...
- selenium自动化之元素定位方法
在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前ht ...
- Selenium(二):选择元素的基本方法
1. 选择元素的基本方法 对于百度搜索页面,如果我们想自动化输入爱编程的小灰灰,怎么做呢? 这就是在网页中,操控界面元素. web界面自动化,要操控元素,首先需要选择界面元素 ,或者说定位界面元素 就 ...
- selenium+python定位元素方法
定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html 这里有各种策略用于定位网页中的元素(l ...
- selenium java-3 定位元素的八种方法
web driver提供了八种元素定位的方法: id name class name tag name link text partial link text xpath css selector 如 ...
- Selenium爬取元素下子元素方法
Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_eleme ...
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>
前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...
- selenium之元素定位的方法(一)
WebDriver 对象有多种方法用于在页面中寻找元素.他们被分成find_element_*和find_elements_*方法.find_element_*方法返回一个WebElement对象,代 ...
随机推荐
- 安装完PyCharm,启动时弹出Failed to load JVM DLLbinserverjvm
安装完PyCharm,启动时弹出"Failed to load JVM DLL\bin\server\jvm.dll"解决方案 问题描述:打开PyCharm时,弹出"Fa ...
- 解决zabbix监控因php问题导致图形界面中文乱码方法
解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题 现象: php编译参数: 说明: 如果PHP编译时启用–enable-gd-jis-co ...
- VS2019 开发Django(十)------JavaScript与Django的数据交互
导航:VS2019开发Django系列 这一篇介绍如何使用BootStrap Table这个组件来绑定渲染数据, 1)先来看一下BootStrap Table是怎么绑定数据的. 通过数据属性 给定da ...
- Microsemi Libero使用技巧——FPGA全局网络的设置
前言 刚开始做Microsemi FPGA+SoC开发时,会用到几个ARM专用的IP Core,功能一复杂起来,就会遇到某些信号如rst_n不能分配到指定的引脚上的情况,IO类型为CLKBUF,并不是 ...
- linux 系统账户 和 普通账户 的区别
最近使用 useradd -r 选项进行创建账户,用于测试,对-r 选项不是很明白,下面记录一些调研的过程: -r, --system Create a system account. System ...
- docker容器和虚拟机的比较
containers:容器是在应用层的抽象化,多个容器能够运行在同一台机器上,和其他容器共享操作系统的核,每个容器运行都独立的运行在用户的空间内.容器需要的空间比虚拟机要小(容器镜像的大小一般为MBs ...
- utf8和utf8mb4的区别
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...
- LINUX OS 正常关机失败
描述:LINUX OS运行命令shutdown now显示:Telling INIT to go to single user mode.... 解决方法:运行命令exit重新登录,再运行 hal ...
- JCC 指令
JCC跳转指令 JCC指条件跳转指令,CC就是指条件码. JCC指令 中文含义 英文原意 检查符号位 典型C应用 JZ/JE 若为0则跳转:若相等则跳转 jump if zero;jump if eq ...
- vivo web service:亿万级规模web服务引擎架构
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q vivo web service是开发团队围绕奇点 ...