相信写过ui自动化,对xpath定位感觉会特别亲戚,那么下面给大家分享些我们常常在写脚本时易忽略的一些小细节和技巧.首先使用xpath定位时切忌 不要使用带有空格的属性 不要使用自动生成的id.class 等 使用firebug会事半功倍 定位时一定要找到唯一的属性要确保定位的唯一性,根据唯一的属性进行各种定位 查看是否存在frame Xptah定位 1.按F12打开firepath点击1处的箭头,指定到要定位的元素,此时查看5出匹配的个数,若只有一个匹配则直接复制3初的路径即可使用(需要关注2…
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…
在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. 什么是xpath呢?官方介绍:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.反正小编看这个介绍是云里雾里的,通俗一点讲就是通过元素的路径来查找到这个元素的,相当于通过定位一个对象的坐标,来找到这个对象. 一. xpath:属性定位 xptah也可以通…
最近在教妹子做自动化测试,妹子基础差,于是想到很多初学自动化的朋友们学习的知识没有规范化,信息太过杂乱.所以,本文整理了一些自动化元素定位方式: 这次将讲Xpath定位! 什么是Xpath: Path就是路径,xpath也类似,就像 在DOS中 D:\Auto\jack. Xpath的使用: 1:在火狐下载 FirePath 插件(图1),然后在浏览器 F12 使用Xpath 能直接定位到元素,并且能够获取元素的Xpath(图2)…
世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等等,但是这些方法局限性太大,拿id属性来说,首先一定不会每个元素都有id属性,其次元素的id属性也不一定是固定不变的.所以这些方法了解一下即可,我们真正需要熟练掌握的是通过xpath和css定位,一般只要掌握一种就可以应对大部分定位工作了. 下面总结一下xpath的定位方法,结合自己练习的实例加深一…
在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前html页面中是唯一的) 页面源码如下: "<button name="btnK">Google Search</button>" 当我们要用name属性来定位这个按钮元素并点击它时,代码如下: driver.find_element_by_name…
xpath定位在业界被戏称为元素定位的"屠龙宝刀",宝刀在手,武林我有.现在我们就来详解xpath定位方法. 一.xpath通过元素属性定位 xpath可以通过元素的属性来定位,如id,name,class,type等属性,元素的任意属性值都可以通过xpath来定位,只要这个属性值能唯一的标识一个元素 我们还以百度首页的搜索框为例,用xpath通过不同属性来定位它. 代码: # coding = utf-8 from time import sleep from selenium im…
目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 (5)XPath逻辑定位 (6)XPath模糊匹配定位 (7)XPath其他定位方式 2.总结: 前情提示:在前一篇文章中,我们详细的介绍了XPath路径表达式的使用方式.那么本篇文章我们就来说说在Selenium测试框架中如何使用XPath定位元素. XPath定位和Selenium基础元素定位…
我们工作中经常用到的定位方式有八大种:id name class_name tag_name link_text partial_link_text xpath css_selector 本篇内容主要说我们功能最强大的xpath定位 1.xpath绝对路径定位: 语法:直接页面所有标签一级一级向下指定,直到找到自己定位的元素:例如:html/body/div/div/span/input 2.根据标签属性进行定位: 语法://标签名[@属性名="属性值"]  标签名可以使用*代替,*表…
一.简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 二.定位 2.1 利用自己的本身属性定位 //标签[文本属性和值] 下面百度的例子: //a[text()='个人中心']  #利用文案 //div[@class='s-isindex-wrap' and @class='s-user-set-menu']  #利用class并且用and连接,表示只有两个属性都满足时才确定元素 //div[@class='s-isindex-…
步骤: 1.通过前端工具,查看元素的属性 2.通过属性定位 iddriver.findElement(By.id("kw")) namedriver.findElement(By.name("wd")) classname 类名driver.findElement(By.className("s_ipt")) tagname 标签名driver.findElement(By.tagName("input")) linktext…
接下来,开始讲解 CSS元素定位. CSS定位速度快,功能多,但是不能向上查找,比 xpath好用,是本人认为最好用的定位方式   大致用法总结: 具体使用仿上篇博客.http://www.cnblogs.com/zhongmeizhi/p/6296213.html 下面都是精华哦. 1.*:checked  选中*的checked元素2. li.refined.list.group.item (如果class中间有空格,可以.+.+.全写也可以只写任意一个)    .checkbox[type…
SVG 意为可缩放矢量图形(Scalable Vector Graphics)定位svg元素要用xpath的name()函数,比如//svg/line[2],要用//*[name()='svg']/*[name()='line'][2]"代替 刚验证了一下,这样写是可以的//div[@class='tg-tree-item'][text()='sharing']//ancestor::div[contains(@class,'tg-row')]/div[contains(@class,'acti…
场景 处理frame需要用到2个方法,分别是switch_to_frame(name_or_id_or_frame_element)和switch_to_default_content() 如何理解这个switch_to_frame(name_or_id_or_frame_element)方法呢?可以简单记忆一下,如果这个frame有name和id属性那么就用这两个属性就好,如果没有的话可以先用find_element_by_xxx方法找到这个frame元素,然后把这个元素传进去,这也是可行的.…
# -*- coding: utf-8 -*- from selenium import webdriver import time import os dr = webdriver.Chrome() file = os.path.abspath("c:\\Temp\\checkbox.html") #获取文件路径 dr.get(file) # 选择所有的checkbox并全部勾上 checkboxes = dr.find_elements_by_css_selector('input…
# 用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…
 selenium 提供的xpath定位方法名为:find_element_by_xpath(xpath表达式) Xpath基本定位语法: / 绝对定位,从根节点选取 // 相对定位,从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 . 选取当前节点 .. 选取当前节点的父节点 @   选取属性,@class = "XXX" @id = "XXX"  : 属性放在中括号[]中 * 通配符  匹配所有. //* @* 通配符  匹配所有属性.//*[@*=&q…
加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链接等.比如在用户名输入框和密码输入框输入正确的用户名和密码,然后点击登录按钮进行登录.在Selenium自动化中,Selenium提供多种API来对HTML元素进行操作,对于每个HTML元素,需要一个可以标识它的标识符,在Selenium中称之为定位器,Selenium支持多种不同类型的定位器,有标…
本来以为不会再更新UI自动化相关的东西了,不过最近群里的朋友在搞UI,提出了许多问题,我看了下,大多还是页面元素定位类的问题,那今天就再讲点. 一.先了解xpath 说到元素定位,大家应该都知道常见的几种定位方式: find_element_by_name() find_element_by_id() find_element_by_css_selector() find_element_by_xpath() 在定位中,一般情况下,是奔着怎么简单怎么来就好.比如元素带有id的话,那直接根据id来…
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. 万物皆对象,所谓的对象,就是你喜欢的那个女神,她就是你的对象.既然是对象,她就有属性,比如眼睛大,头发长,皮肤白,颜值高.这些都是她的属性,每个属性又有对应的属性值,如眼睛="大",头发="长",颜值="高",对应的=后面就是它的属性的值. 同样的道…
Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_element_by_id(' ') name定位:find_element_by_name(' ') class定位:find_element_by_class_name(' ') tag定位:find_element_by_tag_name(' ') link定位:find_element_by_link_…
selenium之xpath定位和input文本 xpath简单定位: 打开浏览器的F12 在自己需要定位的元素的那里右键 选择copy->xpath selenium获取input下的文本: driver.find_element_by_tag_name('input').get_attribute('value')…
在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select = "" 中,用引号括起来的部分必须能够精确地定位节点.具体的定位方法则在XPath中给出. 之所以要在XSL中引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路 径:通过文件管理路径,可以按照一定的规则查找到所需要的文件…
一. Selenium2 WebDriver 当Selenium2.x提出了WebDriver的概念后,它提供了完全另外的一种方式与浏览器交互 那就是利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏.窗口大小.启动.关闭.安装插件.配置证书之类的) 由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学 然而带来的一些副作用就是,不同的浏览器厂商,对web…
元素的定位 webdriver 提供了一很多对象定位方法  例如: [ id ] , name , class name , link text , partial link text , tag name, xpath , css selector 例如:下图 # -*- coding: utf- -*- # 通过id方式定位 browser.find_element_by_id("kw").send_keys("selenium") # 通过name方式定位 b…
本机环境:xamppv3.2.1+ecshop3.0  1.元素定位写对,却一直报错,发现是页面元素加载的太慢,所以加上延时 from selenium import webdriverimport timedriver=webdriver.Chrome()driver.implicitly_wait(10) #自动延时10sdriver.get("http://localhost/ecshop")# driver.find_element_by_xpath('//div[@class…
前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: 而现在要做的就是学习如何定位页面元素,告诉系统我要找到什么UI元素,然后才能进一步的采取其他措施: 其实不想写这篇内容,可是又觉得如果去官方文档找信息又效率慢,那么我就将常用的步骤归纳,那样可以快速查阅解决问题. 参考英文官方资料:http://selenium-python.readthedoc…
xpath定位在业界被戏称为元素定位的"屠龙宝刀",宝刀在手,武林我有.现在我们就来详解xpath定位方法. 一.xpath通过元素属性定位 xpath可以通过元素的属性来定位,如id,name,class,type等属性,元素的任意属性值都可以通过xpath来定位,只要这个属性值能唯一的标识一个元素 我们还以百度首页的搜索框为例,用xpath通过不同属性来定位它. 代码: # coding = utf-8 from time import sleep from selenium im…
刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的,不是个人定位的.影响了自己XPATH的学习.后来,在学习APPIUM 工具时,恶补了XPATH的定位方法. 具体的定位方法参照我博客里之前的两篇文章: http://www.cnblogs.com/star12111/p/8575581.htmlhttp://www.cnblogs.com/sta…
Selenium 定位之Xpath定位: 1.绝对路径定位:以/开头从根节点一直找到当前节点,不推荐使用决定路径定位方式 2.相对路径定位:使用"//"表示相对路径定位,格式://标签名[ @属性= "属性值"] 列如://area[@hidefocus="true"] 3.索引定位:即下标定位,格式:标签名[下标] 列如://div[2] 4.属性值定位:格式://标签名[ @属性= "属性值"] 列如://area[@id…