写点什么

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

作者:测试人
  • 2023-05-23
    北京
  • 本文字数:1493 字

    阅读完需:约 5 分钟

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

原文链接: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

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 webdriverimport timefrom 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 webdriverimport timefrom 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 表达式(后面章节详细讲解)


xpath 定位

  • 格式: driver.find_element(By.XPATH, "xpath 表达式")

  • 复制绝对定位

  • 编写 xpath 表达式(后面章节详细讲解)


link 定位

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


from selenium import webdriverfrom 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()
复制代码


发布于: 刚刚阅读数: 5
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨学习笔记之Selenium 常见控件定位方法_软件测试_测试人_InfoQ写作社区