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

一 前言

元素定位,是操作元素的第一步,也是WebUI自动化的难点和核心。

二 元素定位方法

selenium提供了内置的方法完成对待操作元素的定位,主要分为8类,其中,每类又可细分为定位单个元素和定位多个元素,另外还提供了2个私有方法。详细如下:

定位单个元素

·         find_element_by_id

·         find_element_by_name

·         find_element_by_xpath

·         find_element_by_link_text

·         find_element_by_partial_link_text

·         find_element_by_tag_name

·         find_element_by_class_name

·         find_element_by_css_selector

定位多个元素(注意elements,返回一个列表)

·         find_elements_by_id

·         find_elements_by_name

·         find_elements_by_xpath

·         find_elements_by_link_text

·         find_elements_by_partial_link_text

·         find_elements_by_tag_name

·         find_elements_by_class_name

·         find_elements_by_css_selector

两个私有方法(从基本方法衍生)

find_element 和 find_elements

这两个私有方法实质是分别对应上面介绍的单元素定位和多元素定位的8类方法,如下所示:

from selenium.webdriver.common.by import By

driver.find_element(By.XPATH, '//button[text()="Some text"]')

driver.find_elements(By.XPATH, '//button')

By类的可用属性

ID = "id"

XPATH = "xpath"

LINK_TEXT = "link text"

PARTIAL_LINK_TEXT = "partial link text"

NAME = "name"

TAG_NAME = "tag name"

CLASS_NAME = "class name"

CSS_SELECTOR = "css selector"

 

三 定位属性说明

以百度页面为例,说明各定位属性在页面源码中的表示方法,如下:

打开百度页面,按键盘F12,打开开发工具,使用左上角的箭头,点击页面元素,即可调转到该元素的源码部分。

By_id :    “kw”

By_name:”wd”

By_class_name:”s_ipt”

By_tag_name:  “input”

By_link_text:  ”新闻”

By_partial_link_text : “新”

Xpath和css可以直接使用开发工具获得,方法是:

选中元素-à右键-àcopy-àcopy xpath/copy selector

By_xpath:  “//*[@id="kw"]”

By_css_selector:  ” #kw”

四 总结

只所以说WebUI元素定位是核心,是因为操作元素前必须先要定位到元素;只所以说元素定位又是难点所在,是因为selenium虽然提供了定位元素的方法,但有些场景直接套用方法会报错,如元素是内嵌到frame,存在多个相同元素,弹框、加载延时等,此时需要对元素进行分析,然后采取应对方法,这也是webui自动化的经验积累所在。下篇文章会专门介绍两种元素定位思想。

其他资源:
关于python selenium元素定位方法的视频讲解,请参看:http://i.youku.com/weiworld521 第 25 节。

原文地址:http://blog.51cto.com/2681882/2130300

时间: 2024-10-29 19:08:56

python selenium系列(二)元素定位方式的相关文章

python selenium系列(四)元素等待

一 前言 在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位.操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和操作是核心技术.但是,在某些场景,脚本的运行并非预期那样,如,要操作的元素用常规方法无法识别.元素可以识别但在脚本运行时却未如期而至等.为了解决这些疑难杂症,接下来三节内容将会介绍处理这些问题的通用方法. 在本节,主要介绍元素等待的使用方法和场景,该方法是开

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

python selenium系列(三)常用操作类型及方法

一 前言 开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容.在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素. 二 操作方法分类 总体来说,可以将操作大体分成四类,即浏览器操作.键盘操作.鼠标操作.js脚本. 1.  浏览器常用操作方法: 方法 描述 driver.maximize_window() 窗口最大化 driver.back() 页面返回 driver.forward(

selenium基础:元素定位之css_selector和轴定位

selenium提供了非常丰富的元素定位方式,下面一张思维导图是我根据工作经验总结的定位元素方式,还是比较全的 本篇博客重点介绍css_selector定位和轴定位 一 轴定位 轴名称 ancestor:祖先节点,包含父节点和祖父节点 parent:父结点 preceding_sibling:当前节点标签前的所有兄弟节点 following_sibling:当前节点标签后的所有兄弟节点 following:当前节点标签后的所有节点 使用语法 /轴名称::节点名称  注:轴定位最好用单斜杠 例子

selenium8中元素定位方式

Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下. 这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码.WebDriver8种基本元素定位方式find_element_by_id() 采用id属性进行定位.例如在百度页面中输入关键字 Selenium 进行搜索.百度部分关键源码如下:<span class="bg s_ipt

【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

Selenium系列(一) - 8种元素定位方式的详细解读

安装Selenium和下载Driver 安装selenium pip3 install  selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 下载Driver 打开:http://npm.taobao.org/mirrors/chromedriver/ 找到自己Chrome对应的版本下载即可 访问百度的小Demo #!/usr/bin/env python # -*- coding: utf-8 -*-

selenium+python之元素定位方式介绍

网页自动化测试最基本的要求就是要定位到各个元素,然后才能对该元素进行各种操作(输入,点击,清除,提交等),所以今天来总结下Selenuim+Python最基本的几种定位方式及实例说明, 以百度搜索输入框为例,用谷歌浏览器具体说明各个定位方式的用法. 1.导入selenium包的webdriver方法 输入 from selenium import webdriver 2.从 time 模块中引入sleep函数,使用sleep函数可以让程序休眠 输入 from time import sleep

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

元素定位是 WebDriver 很重要的部分,特别对于自动化测试来说. 要想操作元素,首先必须要找到元素. 我们做自动化测试,就是需要通过模拟手工对元素的操作来实现自动化.脚本无法做到指哪打哪,不能像手工操作那样鼠标移过去点一下就行,毕竟代码没有自我辨别能力. 开发者工具 开发者工具是浏览器自带的网页调试工具,其中最好用的要数谷歌浏览器(Chrome)和火狐浏览器(Firefox).一般通过 F12 快捷键就可以打开.通过此工具可以查看网页元素来寻找可以定位的方法. 首先,我们打开百度首页(ht