web自动化02-常见元素定位(不含xpath和css)

2023-10-17 09:29:26 浏览数 (1)

1、熟悉前端基础

  • 代码和元素是一一对应关系,程序需要通过代码中的某些特征,获取目标元素并进行操作
  • 标签名     key = value      元素的属性和属性值

2、浏览器开发者工具

  • 目的:获取目标元素在页面内代码的相关信息的时候使用

    ①点击鼠标右键 —— 检查

    ②按F12

3、八大元素定位方法:

  1. id(唯一的)
  2. name
  3. class_name
  4. tag_name
  5. link_text
  6. partial_link_text
  7. XPath(通用)
  8. CSS(通用)

① 元素定位方法—id方法

  id定位就是通过元素的id属性来定位元素,id必须是唯一的,前提:元素有id属性

  当元素存在id属性时,优先使用id方法定位元素

  id定位方法:

    element = driver.find_element_by_id(id)

需求:打开注册页面,完成以下操作

1、使用id定位,输入用户名:admin

2、使用id定位,输入密码:123456

3、3秒后关闭浏览器窗口

补充:输入内容方法:元素对象.send_keys("内容")

②元素定位方法—name方法

  name定位就是根据元素name属性来定位,name的属性值是可以重复的,前提:元素有name属性

  由于元素的name属性值可能存在重复,必须确定其能够代表目标元素唯一性之后,方可使用

  name定位方法:

      element = driver.find_element_by_name(name)

需求:打开注册页面,完成以下操作

1、使用name定位,输入用户名:admin

2、使用name定位,输入密码:123456

3、3秒后关闭浏览器窗口

注意:当页面内有多个元素的特征值是相同的时候,定位元素的方法执行时,默认只会获取第一个符合要求的特征对应的元素

因此,定位元素时需要尽量保证使用的特征值能够代表目标元素在当前页面的唯一性

查看元素属性数量:

  • 1、在代码区域使用快捷键 Ctrl F
  • 2、输入目标元素属性值           回车查看数量

③元素定位方法—class_name方法

  class_name定位是根据元素class属性值来定位元素,class定义元素的样式

  前提:元素有class属性

  注意:如果class有多个属性值,只能使用其中的一个

  class_name定位方法

          element = driver.find_element_by_class_name(class_name)

需求:打开注册页面,完成以下操作

1、使用class_name定位,输入邮箱:34234234@qq.com

2、使用class_name定位,输入密码:2343243

3、3秒后关闭浏览器窗口

注意事项:

    1、方法名是class_name, 但要找的是元素的class属性值

    2、如果元素的class属性值存在多个值,只能使用其中的任意一个

④元素定位方法—tag_name方法

  tag_name就是通过标签名来定位

  每一种标签一般在页面中会存在多个,所以不方便进行精确定位,一般很少使用

tag_name定位方法:

      element = driver.find_element_by_tag_name(tag_name)

需求:打开注册页面,完成以下操作

1、使用tag_name定位,输入用户名:admin

2、使用tag_name定位,输入密码:123456

3、3秒后关闭浏览器窗口

注意:由于标签名的重复性过高,一般做精确定位时,都不会选择tag_name

⑤元素定位方法—

1、link_text定位

2、link_partial_link_text定位

1、link_text定位:只针对超链接元素,并且需要出入超链接的全部文本信息

方法:

      element = driver.find_element_by_link_text(link_text)

      link_text: 为超链接的全部文本内容

2、link_partial_link_text定位:只针对超链接元素,并且需要出入超链接的部分文本信息

方法  :

     element = driver.find_element_by_partial_link_text(partial_link_text)

link_text: 为超链接的部分文本内容

       虽然是只传入部分文本信息,但是需要确定其唯一性,方可以使用   

需求:打开注册页面,完成以下操作

1、使用link_text定位(访问 新浪、网站)超链接,并点击

2、3秒后关闭浏览器窗口

补充:点击方法:元素对象.clink()

0 人点赞