写点什么

软件测试学习笔记丨 Selenium 学习笔记:元素定位与操作

作者:测试人
  • 2024-10-23
    北京
  • 本文字数:1419 字

    阅读完需:约 5 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22510

本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~

说明:本篇博客基于 selenium 4.1.0

在 selenium 中,想要对元素进行操作,一般需要如下步骤:

  1. 在浏览器中查看元素属性,便于 selenium 在页面中找到该元素

  2. 在代码中创建元素对象

  3. 元素操作、获取元素信息

查看元素属性

浏览器中进入开发者模式

方法 1:右键-检查方法 2:设置-更多工具-开发者模式方法 3:默认快捷键 F12 出现该页面则进入了浏览器开发者模式,可查看网页结构


找到目标元素的代码

方法 1:在目标元素上右键-检查方法 2:使用选择器,选择到目标元素


创建元素对象

selenium 一共提供了八种定位方式,通过这些定位方式即可创建元素对象。分别为:

from selenium import webdriverfrom selenium.webdriver.common.by import By
driver = webdriver.Chrome()

element_id = driver.find_element(By.ID, 'id属性值') # id定位element_name = driver.find_element(By.NAME, 'name属性值') # name定位element_class = driver.find_element(By.CLASS_NAME, 'class属性值') # class定位element_tag = driver.find_element(By.TAG_NAME, 'html标签名称') # tag定位element_linktext = driver.find_element(By.LINK_TEXT, '文本信息') # 文本定位:仅可用于<a>标签element_partiallinktext = driver.find_element(By.PARTIAL_LINK_TEXT, '文本信息') # 文本模糊定位:仅可用于<a>标签element_css = driver.find_element(By.CSS_SELECTOR, 'css表达式') # css定位element_xpath = driver.find_element(By.XPATH, 'xpath表达式') # xpath定位
复制代码

元素操作

备注:element 代指元素对象

element.click()                         # 点击element.send_keys("helloworld")         # 输入element.clear()                         # 清空element.submit()                        # 提交表单
复制代码

查找元素子节点

以当前 element 为父节点,查找该元素中的子节点。子节点同样支持 selenium 的八种定位方式以百度的"百度一下"为例,我们可以先找到其父节点再找到"百度一下":

element = driver.find_element(By.CSS_SELECTOR, ".s_btn_wr").find_element(By.TAG_NAME, 'input')
复制代码

获取属性

element.tag_name                 # 获取标签名称element.text                     # 获取文本element.get_attribute('class')   # 获取属性element.id                       # 获取selenium内部元素编号element.size                     # 获取大小,返回值:{"height": xx,"width": xx}element.location                 # 获取坐标,返回值:{"x": xx),"y": xx}
复制代码

元素状态

返回值:布尔值

element.is_selected()            # 元素是否被选中element.is_enabled()             # 元素是否可操作element.is_displayed()           # 元素是否可见
复制代码

备注:元素是否可见,指元素是否出现在网页中,无论元素在不在浏览器的可视窗口内

截图

element.screenshot('study_selenium/resource/element_shot.png')  # 截屏并保存到文件中photo = element.screenshot_as_png                               # 截屏,已二进制保存在photo变量中
复制代码

软件测试开发免费视频教程分享


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

测试人

关注

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

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

评论

发布
暂无评论
软件测试学习笔记丨Selenium学习笔记:元素定位与操作_软件测试_测试人_InfoQ写作社区