栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Selenium元素定位】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【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 字母的元素
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号