Python + Selenium(二)网页元素定位(一)

元素定位是 WebDriver 很重要的部分,特别对于自动化测试来说。

要想操作元素,首先必须要找到元素。

我们做自动化测试,就是需要通过模拟手工对元素的操作来实现自动化。脚本无法做到指哪打哪,不能像手工操作那样鼠标移过去点一下就行,毕竟代码没有自我辨别能力。

开发者工具

开发者工具是浏览器自带的网页调试工具,其中最好用的要数谷歌浏览器(Chrome)和火狐浏览器(Firefox)。一般通过 F12 快捷键就可以打开。通过此工具可以查看网页元素来寻找可以定位的方法。

首先,我们打开百度首页(http://www.baidu.com),在这个页面上有搜索的输入框、有搜索按钮、以及图片和各种链接等。

接下来,通过开发者工具来查看网页元素。

快捷键F12(如果你的笔记本电脑有 Fn 键,需要注意可能是 Fn + F12),打开后如下图:

  1. 左上角的箭头按钮,用来查看元素,
  2. 点击该按钮后,想查看哪个元素就点哪个元素;
  3. 当你点击想看的元素后,会自动在下方页面结构中选中该元素;
  4. 在下方的元素结构中可以看到你选择的元素,可以观察其标签名、属性值等
  5. 在底部使用 CSS 选择器的层级表示方式显示的当前选择元素的层级

我们通过上图可以看到,页面上得元素都是由一行行的HTML代码组成,它们之间是有层级组织起来的,每个元素有不同的标签名和属性值。

HTML 简介

HTML 称指的是超文本标记语言 (Hyper Text Markup Language),使用标记标签来描述网页内容。

通常,我们把包括 尖括号、标签名、属性、文本 构成一个最基本的页面元素element

WebDriver 就是通过元素的标签名或各种属性值来查找元素。

除此之外,HTML代码有如下特征:

  1. 由标签对构成
    <html></html>
    <body></body>
    <div></div>

html、div 以及上面提到的 a ,就是标签名 tag name

  1. 标签有各种属性
<div id="wrapper" style="display: block;">
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

属性有 id,name,class,href 等。

  1. 标签对之间有文本数据
<label class="checkbox"><input type="checkbox" name="autologin"> 三日内自动登陆</label>
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>

在两个标签对之间的文字,就是这个标签对应的文本。

思考一下,第一个例子中“三日内自动登陆”属于哪个标签的文本?

  1. 元素有层级关系
<div>
     <form>
           <input />
     </form>
</div>

input 为 form 元素的子元素。div 是 input 元素的 祖先元素。

了解了 开发者工具HTML 基础 ,接下来就可以通过 Selenium 进行元素定位了。

原文地址:https://www.cnblogs.com/zmll/p/11688507.html

时间: 2024-07-31 07:28:43

Python + Selenium(二)网页元素定位(一)的相关文章

Python selenium PO By.XPATH定位元素报错

Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[text()='百度新闻']/..") print(type(self.new_ads_plan)) self.driver.find_element(self.new_ads_plan).click() 运行经常报错:selenium.common.exceptions.WebDriverExcepti

Robot Framework自动化测试(二)---元素定位

说明: 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是“比较”,在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试的过

【Selenium WebDriver】元素定位函数 FindElement

定位Web页面上的元素,用FindElement函数,它可以根据元素的不同属性来快速定位.具体的属性如下: 例子: HTML页面文件: 1 <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us"> 2 <head> 3 <body> 4 <form name="loginForm"> 5 <label for="username

网页元素定位Position

 第九章: 网页元素定位Position position属性 static:默认值,没有定位 relative:相对定位 absolute:绝对定位 fixed:固定定位  (一般不用) static没有定位,以标准流方式显示 relative设置相对定位的盒子会相对它原来的位置,通过指定偏移,到达新的位置.设置相对定位的盒子仍在标准流中,它对父级盒子和相邻的盒子都没有任何影响. 设置了position属性值为relative的网页元素,无论是在标准流中还是在浮动流中,都不会对它的父级元素和相

网页布局05 网页元素定位

网页元素定位涉及到两个css属性:position和z-index属性. position属性 position的属性值如下: position的属性值说明如下: static:没有定位,网页元素以标准文档流方式显示. relative:设置相对定位的盒子会相对它原来的位置,通过指定偏移,到达新的位置.设置相对定位的盒子仍在标准流中,它对父级盒子和相邻的盒子都没有任何影响.设置了position属性值为relative的网页元素,无论是在标准流中还是在浮动流中,都不会对它的父级元素和相邻元素有任

python+selenium+chrome网页自动化

python+selenium+chrome网页自动化测试: 1.在pycharm中安装selenium:file-setting-project interpreter 中搜索selenium然后进行安装: 2.下载安装谷歌浏览器驱动:  引用某位同学的安装路径:https://www.cnblogs.com/qiezizi/p/8632058.html  很简单:下载完之后,我们将下载的文件放在 Python 的根目录下就可以了. 3.新建项目和.Py文件:举例:from selenium

Python + Selenium(三)网页元素定位(二)id 定位

了解了开发者工具和 HTML 结构 后,接下来,就来看看在 Python + Selenium 中如何查找元素了. 查找元素,是 WebDriver 中的核心部分之一.WebDriver提供了八种定位方法,方法如下: 定位方式 方法 说明 id find_element_by_id() 使用 id 属性定位 name find_element_by_name() 使用 name 属性定位 class_name find_element_by_class_name() 使用 class 属性定位

python selenium系列(二)元素定位方式

一 前言 元素定位,是操作元素的第一步,也是WebUI自动化的难点和核心. 二 元素定位方法 selenium提供了内置的方法完成对待操作元素的定位,主要分为8类,其中,每类又可细分为定位单个元素和定位多个元素,另外还提供了2个私有方法.详细如下: 定位单个元素 ·         find_element_by_id ·         find_element_by_name ·         find_element_by_xpath ·         find_element_by_

使用Selenium对网页元素进行定位的诸种方法

使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接. 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了,下面我们来了解一下如何在查找元素. 3.1 查找和定位网页元素 在上一篇的示例中,我们就演示了如何通过find_element_by_id()方法,根据元素的id值来定位页面元素. 除了根据元素的id值来查找元素外,Selenium还提供了很多查找元素的方法: 从上图中可以看到,Selenium提