XPath定位+web UI元素汇总

1、XPath 定位(一旦页面结构发生改变,绝对路径也随之失效,必须重新。 所以不推荐使用绝对路径的写法)

  相对路径定位://input[@value="查询"] 查找value="查询"的input元素
  索引号定位://input[2] 查找页面中第三个input元素,下标从0开始
  页面属性定位://img[@alt='div1-img1'] 查找alt='div1-img1'的img元素
  starts-with关键字模糊定位://img[starts-with(@alt,'div')] 查找alt属性从div开始的img元素
  contains关键字模糊定位://img[contains(@alt,'g1')] 查证alt属性包含'g1'的img元素
  text()函数 文本定位://*[text()='百度搜索'] 查找所有文本为“百度搜索的元素”
  //a[contains(text(),'搜索')] 查证所有文本为“搜索”的超链接

2、元素汇总  

  driver.findElement(By.id())   根据id获取元素
  driver.findElement(By.name())   根据name获取元素
  driver.findElement(By.className())   根据class name获取元素
  driver.findElement(By.tagName())   根据标签获取元素,例如input
  driver.findElement(By.linkText())   根据标签文本获取元素
  driver.findElement(By.partialLinkText())   根据标签文本模糊查询获取元素
  driver.findElement(By.xpath())
  driver.findElement(By.cssSelector())   根据css路径获取元素
  clear()   清楚元素内容
  sendKeys()   模拟按键输入
  click()   点击
  submit()   提交表单
  /xxx   选取根节点xxx
  /xxx/yyy   根据绝对路径选择元素
  //xxx   整个文档扫描,找到所有xxx元素
  //xxx/yyy   所有父元素为xxx的yyy元素
  .   选取当前节点的父元素节点
  ..   选取父元素地址
  //xxx[@id]   选取所有xxx元素中有id属性的元素
  //xxx[@id=yyy]   选取所有xxx元素id属性为yyy的元素
  //*[count(xxx)=2]   统计xxx元素个数=2的节点
  //*[local-name()='xxx']   找到tag为xxx的元素
  //*[starts-with(local-name(),'x')]   找到所有tag以x开头的元素
  //*[contains(local-name(),'x')]   找到所有tag包含x的元素
  //*[string-length(local-name())=3]   找到所有tag长度为3的元素
  //xxx | //yyy   多个路径查找
  context_click   右击事件
  double_click   双击事件
  drag_and_drop   拖动
  move_to_element()   鼠标停在一个元素上
  click_and_hole   按下鼠标左键在一个元素上 
  from selenium.webdriver.common.keys import Keys
  send_keys(Kyes.BACK_SPACE)   退格键
  send_keys(Kyes.CONTRL,'a')   全选
  send_keys(Kyes.CONTRL,'v')   粘帖
  send_keys(Kyes.CONTRL,'c')   复制
  send_keys(Kyes.CONTRL,'x')   剪切
  send_keys(Kyes.ENTER)   回车
  from selenium.webdriver.support.ui import WebDriverWait
  implicitly_wait()   设置webdriver等待时间
  WebDriverWait   等待条件满足或超时后退出
原文地址:https://www.cnblogs.com/lilyo/p/11959488.html