【Selenium元素定位】

学习记录:软件测试实习学习记录


First Week:Python+Selenium自动化测试(Web)

前置条件

  1. 导包.By、webdriver、time、
  2. 获取网址url = r:“www.baidu.com” ;
  3. 打开浏览器driver =webdriver.Chrome.get(url);
    一、复习selenium元素定位方法
    基础定位方法: id、name、class_name、tag_name、link_text、partial_link_text定位方式的使用
#1.使用id定位
driver.find_element(By.ID, "id");

#2.使用name定位
driver.find_element(By.NAME,"name");

#3.使用class_name定位
driver.find_element(By.CLASS_NAME,"classname");

#4.使用tag_name(标签名)进行定位输入框(input)
driver.find_element(By.TAG_NAME,"input");

#5.使用link_text进行定位(要求文本全部匹配)
driver.find_element(By.LINK_TEXT,"链接文本");

#6.使用partial_link_text进行定位(文本模糊匹配)
driver.find_element(By.PARTIAL_LINK_TEXT,"部分链接文本");

难一丢丢的定位方法:XPath、CSS定位方法的使用

XPATH

  • 路径定位
    百度首页输入框:/html/body/div[1]/div[1]/div[5]/div[2]/div/form/span[1]/i[1]
    或者://*[@id=“kw”]
#绝对路径:从根目录开始,繁琐要求多,不推荐使用
driver.find_element(By.XPATH, /html/body/div[1]/div[1]/div[5]/div[2]/div/form/span[1]/i[1]);
#相对路径:
driver.find_element(By.XPATH, //input);
"/" 后面必须接标签名,如a标签,input标签
或者 "/*"表示任意标签
  • 元素属性定位:当相对路径不唯一时,可以结合元素进行定位
#相对路径:
driver.find_element(By.XPATH, //*[@id="kw"]);
#//*[@id="kw"]任意标签下的定位id为kw
  • 属性+逻辑定位:解决重名
driver.find_element(By.XPATH, //*[@id="kw" and @class="s_ipt"]);
#//*[@id="kw"]任意标签下的定位id为kw且class为s_ipt
  • 层级+属性定位:自身元素不满足定位需求,先定位到父级元素,再定位
driver.find_element(By.XPATH, //*[@class="bg s_ipt_wr new-pmd quickdelete-wrap"]/input);
#//*[@id="kw"]任意标签下的定位id为kw且class为s_ipt
除了以上三种方法还可以
//*[text()="xxx"] 文本内容是xxx的元素
//*[contains(@attribute,'xxx')] 属性中含有xxx的元素
//*[starts-with(@attribute,'xxx')] 属性以xxx开头的元素*

CSS

driver.find_element(By.CSS_SELECTOR, "#id");
driver.find_element(By.CSS_SELECTOR, ".class");
driver.find_element(By.CSS_SELECTOR, "input").send_keys("元素选择");
driver.find_element(By.CSS_SELECTOR, "[name = 'wd']").send_keys("属性选择");
#form > span (form一定是span的父级)
#form span (form只要再span之上就行)
driver.find_element(By.CSS_SELECTOR, "form > span > input").send_keys("层级选择");
driver.find_element(By.CSS_SELECTOR, "form  span  input").send_keys("层级选择");
input[type^='p'] type 属性以 p 字母开头的元素
input[type$='d'] type 属性以 d 字母结束的元素
input[type*='w'] type 属性包含 w 字母的元素
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值