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(三):操控元素的基本方法的更多相关文章

  1. selenium - 三种元素等待

    1.sleep 休眠方法 sleep()由python的time模块提供. 当执行到sleep()方法时,脚本会定时休眠所设置的时长,sleep()方法默认参数是s(秒),sleep(2) 表示休眠2 ...

  2. <自动化测试>之<selenium API 查找元素操作底层方法>

    搜罗了一些查找元素的除标准语句外,另外的语句使用方法,摘自 开源中国 郝云鹏driver = webdriver.Chrome(); 打开测试页面 driver.get( "http://b ...

  3. selenium自动化之元素定位方法

    在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前ht ...

  4. Selenium(二):选择元素的基本方法

    1. 选择元素的基本方法 对于百度搜索页面,如果我们想自动化输入爱编程的小灰灰,怎么做呢? 这就是在网页中,操控界面元素. web界面自动化,要操控元素,首先需要选择界面元素 ,或者说定位界面元素 就 ...

  5. selenium+python定位元素方法

    定位元素方法 官网地址:http://selenium-python.readthedocs.org/locating-elements.html        这里有各种策略用于定位网页中的元素(l ...

  6. selenium java-3 定位元素的八种方法

    web driver提供了八种元素定位的方法: id name class name tag name link text partial link text xpath css selector 如 ...

  7. Selenium爬取元素下子元素方法

    Selenium提供了一下方法来定义一个页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_eleme ...

  8. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>

    前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...

  9. selenium之元素定位的方法(一)

    WebDriver 对象有多种方法用于在页面中寻找元素.他们被分成find_element_*和find_elements_*方法.find_element_*方法返回一个WebElement对象,代 ...

随机推荐

  1. Caffe源码-Solver类

    Solver类简介 Net类中实现了网络的前向/反向计算和参数更新,而Solver类中则是对此进行进一步封装,包含可用于逐次训练网络的Step()函数,和用于求解网络的优化解的Solve()函数,同时 ...

  2. Python基础-day01-7

    程序执行原理(科普) 目标 计算机中的 三大件 程序执行的原理 程序的作用 01. 计算机中的三大件 计算机中包含有较多的硬件,但是一个程序要运行,有 三个 核心的硬件,分别是: CPU 中央处理器, ...

  3. js反爬学习(一)谷歌镜像

    1. url:https://ac.scmor.com/ 2. target:如下链接 3. 过程分析: 3.1 打开chrome调试,进行元素分析.随便定位一个“现在访问” 3.2 链接不是直接挂在 ...

  4. Java题库——Chapter14 JavaFX基础

    Chapter 14 JavaFX Basics Section 14.2 JavaFX vs Swing and AWT1. Why is JavaFX preferred?a. JavaFX is ...

  5. .Net Core组件化视图(部分视图)

    .Net Core组件化视图(部分视图) 1.背景 1.以前我们使用.Net的时候使用部分视图的方式在,.Net Core 中能在单独处理逻辑的部分视图没有了,但是我们还是想使用现在的.Net Cor ...

  6. 如何用python查看自己的电脑有几个核

    今天在研究多进程的时候,如果想要充分利用多核CPU资源,最起码的一点你应该知道自己的电脑有几个核. 下面是用python3 的 os 模块来查看自己的电脑是几个核的方法. import os prin ...

  7. orm终极大爆炸

    orm终极 甩一个代码给你 # 创建字段 class Field: def __init__(self, name, column_type, primary_key, default): self. ...

  8. SAP之RFC_READ_TABLE

    RFC_READ_TABLE 是SAP系统自带的RFC函数,用于读取SAP数据库表的结构和数据.使用方法如下: IMPORTINGQUERY_TABLE:读取的表名DELIMITER:输出字段(DAT ...

  9. linux_ext4恢复超级块.txt

    恢复ext4文件系统superblock 2014-04-01 17:00:17 分类: Linux 恢复ext4文件系统superblock1. Create ext4 文件系统.[root@loc ...

  10. 快速查看本地IP地址

    1. 新建Windows批处理文件(*.bat) @echo off echo 本机IP ipconfig|find "IPv4" echo. echo 电脑名 hostname ...