selenium中元素定位&xpath详细介绍

前言

       ui 自动化测试,可分为两种,一个是web端自动化测试,一个是app端自动化测试,那么我们是通过什么方式去操作界面的呢?肯定会有个中间的途径,就是通过元素定位,定位到元素后,再对这个元素进行操作,那么今天就来介绍下ui自动化测试中的其中一种 ———— web自动化测试,selenium框架中的元素定位 & xpath 这个中元素定位的详细介绍。


一、什么是元素定位?

      元素定位 :是找到元素操作的行为,是对元素进行操作(点击、输入等),来控制页面操作。

二、selenium中元素定位的方式有那些?

1、元素定位的八大方式:

# driver.find_element_by_id()
# driver.find_element_by_name()
# driver.find_element_by_class_name()
# driver.find_element_by_xpath()
# driver.find_element_by_css_selector()
# driver.find_element_by_link_text()     ==> 通过超链接文本进行定位
# driver.find_element_by_partial_link_text()    ==> 通过超链接部分文本进行定位
# driver.find_element_by_tag_name()   ==> 通过标签名进行定位

2、find_element & find_elements 的区别:

1)、find_element   得到的是一个webelement的对象,只会返回查找到的第一个对象;
     find_elements  得到的是一个列表(返回),返回查找到的所有,并保存到一列表中

2)、如找不到,
   print(driver.find_element_by_id('kw')) find_element 会报错,NoSuch ElementException
   print(driver.find_elements_by_id('kw'))  find_elements  不会报错,但是会返回空列表
   
3)、当我们想验证通过某个表达式,能否找到元素,判断页面是否存在元素
  # find_element  不存在会报错 ,可通过try...except...进行捕获
  try:
      driver.find_element_by_id('kw')
      print('元素存在')
  except:
      print('元素不存在')
      
  # find_elements 得到的是一列表,条件不满足是,可通过条件判断,返回True、False
  if driver.find_elements_by_id('kw')
      print('元素存在')
  else:
      print('元素不存在')

在自动化测试中,一般使用find_element,不加s会更常见

3、调取元素定位的界面:

    1)打开需操作的浏览器页面,如:https://www.baidu.com

    2)点击键盘 F12 或 通过右击,选中检查;

    3)选中Elements,点击左上箭头处(此时变蓝),然后可以点击我们需定位的元素;

你可能感兴趣的:(python自动化测试,selenium,xpath)