软件测试/测试开发丨学习笔记之Selenium 常见控件定位方法

本文为霍格沃兹测试开发学社学员笔记分享

原文链接:https://ceshiren.com/t/topic/24834

1、常见控件定位方法

目录

  • HTML铺垫
  • Selenium八大定位方式
  • 常用定位方式练习

HTML铺垫

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试人论坛</title>
</head>
<body>
<a href="https://ceshiren.com/" class="link">链接</a>
</body>
</html>
  • 标签:<a>
  • 属性:href
  • 类属性: class

Selenium定位方式

Selenium提供了八种定位方式:Locator strategies | Selenium

方式描述
class nameclass 属性对应的值
css selector(重点)css 表达式
id(重点)id 属性对应的值
name(重点)name 属性对应的值
link text查找其可见文本与搜索值匹配的锚元素
partial link text查找其可见文本包含搜索值的锚元素。如果多个元素匹配,则只会选择第一个元素。
tag name标签名称
xpath(重点)xpath表达式

selenium 常用定位方式

#格式: 
driver.find_element_by_定位方式(定位元素)
driver.find_element(By.定位方式, 定位元素) 
# 示例,两种方式作用一模一样
# 官方建议使用下面的方式
driver.find_element_by_id("su")
driver.find_element(By.ID, "su") 

通过 id 定位

  • 格式: driver.find_element(By.ID, "ID属性对应的值")
from selenium import webdriver
import time
from selenium.webdriver.common.by import By

def id_position_method():

    # 实例化chromedriver
    driver = webdriver.Chrome()
    # 打开网站
    driver.get('http://www.ceshiren.com')
    # 等待一秒
    time.sleep(1)
    # 点击“精华帖”
    driver.find_element(By.ID,"ember35").click()
    # 等待两秒
    time.sleep(2)

if __name__ == '__main__':
    id_position_method()

name 定位

  • 格式: driver.find_element(By.NAME, "Name属性对应的值")
from selenium import webdriver
import time
from selenium.webdriver.common.by import By

def name_position_method():

    # 实例化chromedriver
    driver = webdriver.Chrome()
    # 打开网站
    driver.get('http://www.baidu.com')
    # 等待一秒
    time.sleep(1)
    # 点击更多
    driver.find_element(By.NAME,"tj_briicon").click()
    # 等待两秒
    time.sleep(2)

if __name__ == '__main__':
    name_position_method()

css selector 定位

  • 格式: driver.find_element(By.CSS_SELECTOR, "css表达式")
  • 复制绝对定位
  • 编写 css selector 表达式(后面章节详细讲解)

image

xpath 定位

  • 格式: driver.find_element(By.XPATH, "xpath表达式")
  • 复制绝对定位
  • 编写 xpath 表达式(后面章节详细讲解)

image

link 定位

  • 格式:

    • driver.find_element(By.LINK_TEXT,"文本信息")

image

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


def web_locate():
    # 首先需要实例化driver对象,Chrome()一定要加括号
    driver = webdriver.Chrome()
    # 打开一个网页
    driver.get("https://vip.ceshiren.com/#/ui_study")
    # 1. ID定位, 第一个参数传递定位方式,第二参数传递定位元素,调用这个方法的返回值为WebElement
    # web_element = driver.find_element(By.ID, "locate_id")
    # web_element = driver.find_element_by_id("locate_id")
    # print(web_element)
    # 2. Name定位,
    # 如果没有报错,证明元素找到了
    # 如果报错 no such element 代表,元素定位可能出现错
    # driver.find_element(By.NAME, "locate11111") #错误示例
    # driver.find_element(By.NAME, "locate")
    # 3. Css 选择器定位
    # driver.find_element(By.CSS_SELECTOR, "#locate_id > a > span")
    # 4. xpath 表达式定位
    # driver.find_element(By.XPATH, '//*[@id="locate_id"]/a/span')
    # 5. 通过链接文本的方式 (1) 元素一定是a标签 2. 输入的元素为标签内的文本
    # driver.find_element(By.LINK_TEXT, "元素定位")

if __name__ == '__main__':
    web_locate()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值