自动化测试:xpath通过绝对路径定位元素

单个元素的定位

(1)xpath通过绝对路径定位元素
绝对路径是从最外层元素到指定元素之间所有经过元素层级的路径。绝对路径的写法是以单斜杠开头逐级开始编写,不能跳级。
(2)xpath通过相对路径定位元素
相对路径可匹配任意层级的元素,不限制元素的位置。相对路径的写法是以双斜杠开头,双斜杠后面紧跟着元素名称,不确定的元素名称可以使用*代替。

常用的xpath定位元素写法与说明如下表所示

xpath定位元素写法说明
//span/input[1]通过索引定位,表示选取第一个与表达式//span/input匹配的元素
//span/input[last()]通过索引定位,表示选取最后一个与表达式//span/input匹配的元素
//input[@id=‘dl’]通过id属性定位,表示定位id属性值为dl的元素
//input[@name=‘mz’]通过name属性定位,表示定位name属性值为mz的元素
//input[@class=‘s_ipl’]通过class属性定位,表示定位class属性值为s_ipl的元素
//[@id=‘kw’]通过通配符定位,表示定位所有id属性值为kw的元素
//a[@name=‘book’ or 通过逻辑表达式定位,表示定位name属性值为book或者text()=‘music’]文本内容为music的元素
/a[contains(@href’新闻’)and 通过逻辑表达式定位,表示定位href属性中包含“新闻”并text()=‘新闻联播’]且文本内容中包含“新闻联播”的元素
/html/body/input[1]通过绝对路径定位,表示定位/html/body/input下的第一个标签

代码

import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.maximize_window()
driver.implicitly_wait(100)
time.sleep(2)
# driver.find_element(By.XPATH,'/html/body/div[2]/div[1]/div[5]/div/div/form/span[1]/input').send_keys('毛绒玩具')
# time.sleep(2)
# driver.find_element(By.XPATH, '/html/body/div[2]/div[1]/div[5]/div/div/form/span[2]/input').click()
# time.sleep(10)
#绝对定位
# driver.find_element(By.XPATH,"/html/body/div/div/div[3]/a[3]").click()
# time.sleep(10)

#相对定位
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys('自动化测试')
time.sleep(2)
driver.find_element(By.XPATH, '//input[@id="su"]').click()
time.sleep(10)
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值