软件测试/人工智能|selenium元素定位方式大全

简介: 软件测试/人工智能|selenium元素定位方式大全

image.png

前言

当我们在使用selenium进行自动化测试工作时,元素定位是非常重要的一环,因为我们是借助脚本模拟我们通过鼠标和键盘对元素进行点击、输入内容和滑动操作的,所以准确的元素定位是我们执行测试脚本的重要一环。本文就来给大家介绍一下selenium的元素定位方式。

find_element和find_elements

元素定位有两个表达式,分别为find_element()find_elements(),它们的不同点如下:

  • find_element():找出的为单个元素,若有多个元素为同一表达式,则默认定位第一个元素,可以直接进行点击,输入等操作。
  • find_elements():找出的为一组列表,不能直接对元素进行点击等操作,需要加索引,取列表的第n个元素。

Xpath定位

Xpath定位方法是基本的一类定位方法,XPath(XML Path Language)是一种用于定位XML和HTML文档中元素的语言。其在自动化脚本中使用的例子如下:

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
# 通过xpath定位输入框,输入内容selenium
browser.find_element(By.XPATH, '//input[@id="kw"]').send_keys('selenium')
# 停留五秒后关闭浏览器
time.sleep(5)
browser.quit()

这个XPath表达式将会匹配idkwinput元素。

css定位

CSS选择器是一种强大且常用的定位方式。它能够通过元素的属性、标签名、类名等准确地定位到页面元素。其在自动化脚本中使用的例子如下:

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
# 通过css定位输入框,输入内容selenium
browser.find_element(By.CSS_SELECTOR, '.s_ipt').send_keys('selenium')
# 停留五秒后关闭浏览器
time.sleep(5)
browser.quit()

id定位

根据元素的id属性值定位,最为方便且唯一,但是现在很多元素的id都是动态生成的,在使用id属性定位时需要注意。其在自动化脚本中使用的例子如下:

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
# 通过ID定位输入框,输入内容selenium
browser.find_element(By.ID, 'kw').send_keys('selenium')
# 停留五秒后关闭浏览器
time.sleep(5)
browser.quit()

name定位

根据元素的name属性值定位,但是我们需要注意,定位到的元素可能并不是唯一的。其在自动化脚本中使用的例子如下:

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
# 通过name属性选择文本框元素,并设置内容
browser.find_element(By.NAME,'wd').send_keys("selenium")
# 通过通过ID属性获取“百度一下”按钮,并执行点击操作
browser.find_element(By.ID,"su").click()
# 停留五秒后关闭浏览器
time.sleep(5)
browser.quit()

class定位

class定位,根据元素的class属性值定位,但可能受JS影响动态变化。定位到的标签不一定是唯一的。其在自动化脚本中使用的例子如下:

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
time.sleep(2)
# 通过class属性选择元素
browser.find_element(By.CLASS_NAME,'s_ipt').send_keys("selenium")
time.sleep(2)
browser.find_element(By.ID,"su").click()
# 停留三秒后关闭浏览器
time.sleep(3)
browser.quit()

tag定位

tag name定位,根据元素的标签名定位,定位到的标签不一定是唯一的。其在自动化脚本中使用的例子如下:

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Firefox()
browser.get("https://www.baidu.com")
time.sleep(2)
# 选择<button></button>标签(搜索按钮),执行点击操作
browser.find_element(By.TAG_NAME, "button").click()
# 停留三秒后关闭浏览器
time.sleep(3)
browser.quit()

link定位

link表示包含有属性href的标签元素,如:<a href="https://www.csdn.net">linktext</a>可以通过LINK_TEXT进行定位。

  • find_element(By.LINK_TEXT,'XX')根据链接文本全匹配进行精确定位。
  • find_element(By.PARTIAL_LINK_TEXT,'XX')根据链接文本模糊匹配进行定位。

By.LINK_TEXT精确定位

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
# 选择https://news.baidu.com/标签,执行点击操作
browser.find_element(By.LINK_TEXT, "新闻").click()
# 停留三秒后关闭浏览器
time.sleep(3)
browser.quit()

By.PARTIAL_LINK_TEXT模糊定位

import time
# 导入selenium包
from selenium import webdriver
from selenium.webdriver.common.by import By
# 启动并打开指定页面
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
# 选择https://news.baidu.com/标签,执行点击操作
browser.find_element(By.PARTIAL_LINK_TEXT, "新").click()
# 停留三秒后关闭浏览器
time.sleep(3)
browser.quit()

总结

本文主要介绍了selenium常用的几种元素定位方法,灵活地使用元素定位方法对于提高我们查找元素定位效率,提升测试脚本的健壮性有很大帮助,希望本文能够帮到大家。

相关文章
|
1月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
96 5
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的革新
在这篇技术性文章中,我们将深入探讨人工智能(AI)如何彻底改变了软件测试领域。从自动化测试到智能缺陷检测,AI不仅提高了测试的效率和准确性,还为软件开发团队提供了前所未有的洞察力。通过具体案例,本文揭示了AI在软件测试中应用的现状、挑战及未来趋势,强调了技术创新在提升软件质量与开发效率中的关键作用。
|
30天前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:提升效率与准确性的新途径
在当今快速发展的技术领域,人工智能(AI)正成为软件测试的重要工具。本文将探讨AI在软件测试中的应用,如何通过智能化手段提高测试的效率和准确性。从自动化测试到缺陷预测,我们将深入了解AI如何改变传统的软件测试方式,为软件开发流程带来革命性的变化。
|
1月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
219 5
|
12天前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:现状与未来
【10月更文挑战第6天】 本文探讨了人工智能在软件测试中的应用,包括自动化测试、智能缺陷分析以及测试用例生成等方面。通过案例分析和未来趋势预测,文章展示了AI如何提高软件测试的效率和准确性,并指出了当前面临的挑战和未来的发展方向。
42 1
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的人工智能革命
本文探讨了人工智能在软件测试中的应用及其带来的变革。通过分析AI如何提高测试效率、准确性,并减少人工干预,本文揭示了软件测试领域的未来趋势。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试中的人工智能:改变游戏规则的技术革命
【10月更文挑战第10天】 本文深入探讨了人工智能在软件测试中的应用,揭示了它如何提高测试效率、减少人为错误,并预示了未来软件测试行业的发展趋势。通过案例分析和原理讲解,文章展现了AI技术在自动化测试、缺陷检测和性能评估等方面的巨大潜力。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
软件测试中的人工智能应用与挑战
【10月更文挑战第10天】 在当今信息技术飞速发展的时代,软件系统日益复杂且多样化,传统的手工测试方法已无法满足快速迭代和高效发布的需求。人工智能(AI)技术的引入为软件测试领域带来了新的希望和机遇。本文将探讨人工智能在软件测试中的应用现状、所面临的挑战以及未来的发展趋势,旨在启发读者思考如何更好地利用AI技术提升软件测试的效率和质量。
37 0
|
1月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!