01、前言
如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负众望。谢谢!!!
1.前提
基于win10专业版64位系统+64位jdk1.8+64位python3.6.5+社区版pycharm2018.1.3+unittest+selenium3.141.0。
2.xpath八种定位方式
xpath:即xml路径语言,通常用来在html或xml中查找元素。
掌握了xpath八种定位方式能干啥?既不能上天也不能遁地,但能解决你在selenium自动化测试定位元素时百分之99.999999999......的元素都可以定位得到。
下来看下xpath的基本语法:
# /:从根节点选取
# //:从非根节点选取
# *:任意节点选取
# @:根据属性
# text():根据链接文本
# and:关联属性或链接文本
# []:可以放置下标、属性和链接文本
# .:选取当前节点
# ..:选取当前节点的父节点
# contains:包含,用于模糊匹配
说明:xpath涉及到的东西还有很多,这里仅教会大家做自动化测试时,会灵活书写xpath定位语句即可。
1)全路径:不推荐
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("/html/body/div/div/div[2]/a[3]").click()#全路径定位,不推荐
sleep(1)
dr.close()
2)单属性
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@name='tj_trhao123']").click()#单属性定位
sleep(1)
dr.close()
3)多属性
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@name='tj_trhao123' and @class='mnav']").click()#多属性定位
sleep(1)
dr.close()
4)父属性
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//div[@id='u1']/a[@name='tj_trhao123']").click()#父属性定位
sleep(1)
dr.close()
5)下标
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@class='mnav'][2]").click()#下标定位
sleep(1)
dr.close()
6).和..
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@class='mnav'][2]/.").click()#.和..定位
sleep(1)
dr.close()
7)链接文本
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[text()='hao123']").click()#链接文本定位
sleep(1)
dr.close()
8)模糊匹配
from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
# dr.find_element_by_xpath("//a[contains(@name,'hao')]").click()#模糊匹配定位
dr.find_element_by_xpath("//a[contains(text(),'hao')]").click()#模糊匹配定位
sleep(1)
dr.close()
注:xpath八种定位方式,除了第一种全路径定位方式不推荐外,其它几种定位方式,你觉得哪个方便就用哪个好了。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。