python+selenium基础之XPATH定位

世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!!

selenium定位元素的方法有很多种,像是通过id、name、class_name、tag_name、link_text等等,但是这些方法局限性太大,拿id属性来说,首先一定不会每个元素都有id属性,其次元素的id属性也不一定是固定不变的。所以这些方法了解一下即可,我们真正需要熟练掌握的是通过xpath和css定位,一般只要掌握一种就可以应对大部分定位工作了。

下面总结一下xpath的定位方法,结合自己练习的实例加深一下了解

一、首先需要了解一下xpath的概念和基本语法

网上关于xpath的教程比较少,可以看一下菜鸟教程和w3cschool的相关资料:http://www.runoob.com/xpath/xpath-tutorial.htmlhttp://www.w3school.com.cn/xpath/index.asp

二、常用的xpath定位方法

1.利用标签内的属性进行定位

(1)通过id属性

xpath = "//a[@id=‘start_handle‘]"//a表示选取所有a元素,加上[@id=‘start_handle‘]表示选取id属性为‘start_handle‘的a元素
(2)通过name属性定位

xpath = "//input[@name=‘custName‘]"

概括:xpath = "//标签名[@属性=‘属性值‘]"

属性判断条件:最常见为id,name,class等等,属性的类别没有特殊限制,只要能够唯一标识一个元素即可。

当某个属性不足以唯一区别某一个元素时,也可以采取多个条件组合的方式,如下:

xpath= "//input[@type=‘XX‘ and @name=‘XX‘]"

2.利用text()方法定位

如上所示,在【上一步】按钮的<a></a>标签之间有一段文本“上一步”,那么可以通过下面这种方式来定位

xpath = "//a[text()=‘上一步‘]"

【开始办理】按钮可以使用如下路径:xpath = "//a[text()=‘开始办理‘]"

3.利用contains()方法定位,也叫模糊定位

xpath = "//标签名[contains(@属性, ‘属性值‘)]"

xpath3 = "//a[contains(@href, ‘basicinfo‘)]" 取href的关键信息‘basicinfo‘,这样也可以定位到【开始办理】按钮

原文地址:https://www.cnblogs.com/hanmk/p/8997786.html

时间: 2024-08-02 17:48:56

python+selenium基础之XPATH定位的相关文章

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

2.自动化测试之python+selenium基础

元素的定位    浏览器控制    鼠标事件      键盘事件    获取验证 设置等待      sleep休眠    定位一组元素   多表单切换  多窗口切换 警告框处理    上传文件      下载文件      cookies操作 javascript调用 截图          关闭窗口      验证码处理 一.元素的定位 1.webdriver提供的8种页面元素定位方法:     id/name/class name/tag name/link text/partial li

selenium入门:Xpath定位-绝对定位

Xpath定位 Xpath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. from selenium import webdriver from time import sleep driver=webdriver.Firefox() driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input&

Python+Selenium基础篇之4-XPath的使用

开始写自动化脚本之前,我们先学习几个概念,在完全掌握了这几个概念之后,有助于我们快速上手,如何去编写自动化测试脚本. 元素,在这个教程系列,我们说的元素之网页元素(web element).在网页上面的文本输入框,按钮,多选,单选,标签,和文字都叫元素,总之,凡是能在页面显示的对象都可以作为页面元素对象. 元素定位,有时候也叫Locator,一个HTML页面元素,可以用很多方法去描述这个元素的位置.打个比方,生活中地址,一个大厦,正常的地址是 xx省xx市xx区xx街道xxx号,这个具体描述就是

selenium自动化之xpath定位*必会技能*

相信写过ui自动化,对xpath定位感觉会特别亲戚,那么下面给大家分享些我们常常在写脚本时易忽略的一些小细节和技巧.首先使用xpath定位时切忌 不要使用带有空格的属性 不要使用自动生成的id.class 等 使用firebug会事半功倍 定位时一定要找到唯一的属性要确保定位的唯一性,根据唯一的属性进行各种定位 查看是否存在frame Xptah定位 1.按F12打开firepath点击1处的箭头,指定到要定位的元素,此时查看5出匹配的个数,若只有一个匹配则直接复制3初的路径即可使用(需要关注2

使用python处理selenium中的xpath定位元素的模糊匹配问题

# 用contains,寻找页面中style属性值包含有sp.gif这个关键字的所有div元素,其中@后面可以跟该元素任意的属性名. self.driver.find_element_by_xpath('//div[contains(@style,"sp.gif")]').click() # 用start-with,寻找style属性以position开头的div元素,其中@后面可以跟该元素任意的属性名. self.driver.find_element_by_xpath('//div

Python+Selenium基础篇之5-第一个完整的自动化测试脚本

前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python! 一样. 我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项. 在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本.我把这个测

python selenium 基础框架

base_page.py 1 # coding=utf-8 2 import time 3 from selenium.common.exceptions import NoSuchElementException 4 import os.path 5 from unittest3.framework.logger import Logger 6 7 # create a logger instance 8 logger = Logger(logger="BasePage").getl

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

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