首页 > 其他分享 >八大元素定位

八大元素定位

时间:2023-07-07 23:15:35浏览次数:38  
标签:定位 八大 元素 driver send autocomplete 相对路径 input find

一、八种元素定位的方法:

id,name,class类名,tag_name标签名,link_text链接文本,partail_link_text部分链接文本,xpath,css

1.xpath

绝对路径:使用/

/html/body/div/div/div......    #实际工作中不会使用

相对路径:使用//

  1.相对路径://form/span/input  #定位所有form标签下有span标签下有input标签的元素

  2.相对路径+索引定位://form/span[1]/input  #定位form标签下第1个span标签下的input标签下的元素

  3.相对路径+属性定位://input[@autocomplete='off']  #定位带有autocomplete='off'属性的input标签下的元素

  4.相对路径+属性组合:

  and://input[@name='wd' and @autocomplete='off']

  or://input[@name='wd' or @autocomplete='off']

  5.相对路径+通配符*://*[@*='wd' or @*='off']  #标签名、属性名可以用通配符代替

  6.以上所有的方式都可以组合使用://form[@*='form' and @name='f']/span[1]/input

#演示:

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

url="https://www.baidu.com/"

driver=webdriver.Chrome()  #打开浏览器
driver.implicitly_wait(10)  #隐性等待10秒
driver.get(url)  #访问url
# driver.find_element(By.XPATH,"//form/span/input").send_keys("相对路径")
# driver.find_element(By.XPATH,"//form/span[1]/input").send_keys("相对路径+索引定位")
# driver.find_element(By.XPATH,"//input[@autocomplete='off']").send_keys("相对路径+属性定位")
# driver.find_element(By.XPATH,"//input[@name='wd' and @autocomplete='off']").send_keys("相对路径+属性组合")
# driver.find_element(By.XPATH,"//input[@name='wd' or @autocomplete='off']").send_keys("相对路径+属性组合")
# driver.find_element(By.XPATH,"//*[@*='wd' or @*='off']").send_keys("相对路径+通配符*")
driver.find_element(By.XPATH,"//form[@*='form' and @name='f']/span[1]/input").send_keys("相对路径+组合使用")

time.sleep(5)

动态元素定位

相对路径+部分属性值定位:

属性值以of开头://input[starts-with(@autocomplete,'of')]  #匹配以of开头

属性值以ff结尾://input[substring(@autocomplete,2)='ff']  #匹配第2位到最后一位

属性值中间包含f://input[contains(@autocomplete,'f')]  #匹配带有'f'的

#演示:

driver.find_element(By.XPATH,"//input[starts-with(@autocomplete,'of')]").send_keys("相对路径+部分属性值定位")
driver.find_element(By.XPATH,"//input[substring(@autocomplete,2)='ff']").send_keys("相对路径+部分属性值定位")
driver.find_element(By.XPATH,"//input[contains(@autocomplete,'f')]").send_keys("相对路径+部分属性值定位")

文本定位

 

标签:定位,八大,元素,driver,send,autocomplete,相对路径,input,find
From: https://www.cnblogs.com/vorn/p/17536340.html

相关文章

  • 360se浏览器审查元素中的网络中的载荷
    type:1name:area:city:不限city1:----city2:----xmxz:0state:0money:money1:number:0fid1:fid2:fid3:order:0page:1include:0来源:360se浏览器post中,载荷里的表单数据。复制下来后会呈现上面的样子。要求:变成字典样式。问题:1、key和value被分开。2、有的key没有v......
  • LeetCode 169. 多数元素
    classSolution{public:intmajorityElement(vector<int>&nums){intcnt=1;intres=nums[0];for(inti=1;i<nums.size();i++){if(nums[i]==res)cnt++;elsecnt--;i......
  • 常见的istio定位手段
    常见的网格定位手段本文大都参考官方文档和自己定位问题的经验查看istio-proxy日志kubectllogspodname-xxx-cistio-proxy查看istio指标#curl-sS'localhost:15000/stats/prometheus'|grep<指标名>curl-sS'localhost:15000/stats/prometheus'|grepistio_reque......
  • CSS学习笔记3-CSS元素定位
    1标准流布局1.1认识定位属性......
  • 如何让父元素的最小宽度为某一个子元素的内容宽度
    具体做法是让除了那个子元素以外,所有子元素都使用flex布局,让后再叠加一层flex-grow:1;width:0的inner布局上代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edg......
  • Jquery操作元素的属性和css
    <buttonid="problem_chart_search"type="confirm"style="margin:03em;color:#fff;font-size:.75em;padding:2px10px;">搜索</button>//1、改属性$('#problem_chart_search').attr("disabled","disa......
  • 软件测试 | 如何使用代理配置快速定位接口测试脚本问题?
    更多软件测试学习资料!!!在调试接口用例过程中,如果响应结果和预期结果不一致,则需要检查请求信息。通过代理获取自动化测试中的请求响应信息,对比与正常请求响应的区别,就能够更直观的排查请求错误,相当于编写代码时的debug功能。实战练习在自动化测试中,不论是Java版本还是Python版......
  • 1.7 完善自定位ShellCode后门
    在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过PEB获取GetProcAddrees函数地址,并根据该函数实现所需其他函数的地址自定位......
  • vue项目中锚点定位bug无效和替代方式
    在vue项目中,使用锚点定位会和router的规则冲突,在项目中的表现就是第一次点击url改变了,但是没有跳转到锚点位置,再次点击才会跳转。所以在vue项目中定义一个方法不适用锚点定位:scrollToSection(id){letsection=document.getElementById(id)if(section){......
  • 基于ip的手机地理定位
    现在lbs服务比较火,基本上都需要定位用户的地理信息,用户地理信息一般是通过gps来定位实现的,那么假如用户的gps坏了,或者没有开启,那么怎么获得用户的地理信息的呢?替代的办法就是可以获得手机真实ip信息来大致获取手机用户的大概位置,虽然不是很精确,但是在精确度不高的情况下可以临时代......