首页 > 其他分享 >软件测试/人工智能|selenium元素定位方式大全

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

时间:2023-12-15 11:31:50浏览次数:27  
标签:webdriver 定位 软件测试 selenium time import 大全 browser

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

前言

当我们在使用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常用的几种元素定位方法,灵活地使用元素定位方法对于提高我们查找元素定位效率,提升测试脚本的健壮性有很大帮助,希望本文能够帮到大家。

标签:webdriver,定位,软件测试,selenium,time,import,大全,browser
From: https://blog.51cto.com/u_15640304/8833161

相关文章

  • 软件测试|测试专家(前阿里P8)聊测试职业发展常见瓶颈
    本文整理自资深测试技术专家(前阿里P8)刘**老师在「测试大咖在线沙龙」上的分享精华部分,完整演讲内容(4个经典案例+8个关键问题+100个互动答疑),请扫描文末二维码。我在测试行业工作有十多年了,由于工作经历中曾面试过很多测试工程师(粗略统计在1000人以上),见过各种各样的应聘者,也一直......
  • Selenium系列知识点整理--个人总结
    Selenium系列知识点整理-----https://www.cnblogs.com/yoyoketang/-----本文摘录于‘上海-悠悠’的博客,网址如上  新手学习selenium路线图(老司机亲手绘制)-学前篇  学习selenium主要分六个阶段,自己在哪个层级,可以对号入座下。第一阶段:幼儿园1.选语言:在学习自动......
  • Python库大全,建议收藏留用!
    学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。Python学习网络爬虫主要分3个大的版块:抓取,分析,存储当我们在浏览器中输入一个url后回车,后台会发生什么?简单来说这段过程发生了以下四个步骤:查找域名对应的IP地址。向IP对应的服务器发送请求。服务器......
  • 软件测试/人工智能|selenium元素定位方式大全
    前言当我们在使用selenium进行自动化测试工作时,元素定位是非常重要的一环,因为我们是借助脚本模拟我们通过鼠标和键盘对元素进行点击、输入内容和滑动操作的,所以准确的元素定位是我们执行测试脚本的重要一环。本文就来给大家介绍一下selenium的元素定位方式。find_element和find......
  • 软件测试|测试专家(前阿里P8)聊测试职业发展常见瓶颈
    本文整理自资深测试技术专家(前阿里P8)刘**老师在「测试大咖在线沙龙」上的分享精华部分,完整演讲内容(4个经典案例+8个关键问题+100个互动答疑),请扫描文末二维码。我在测试行业工作有十多年了,由于工作经历中曾面试过很多测试工程师(粗略统计在1000人以上),见过各种各样的应聘者,也一......
  • 软件测试/人工智能|一文教你配置selenium环境
    前言在软件开发过程中,自动化测试是确保应用程序质量的关键步骤之一。Python语言与Selenium库的结合为开发者提供了一个强大的工具,用于自动化Web应用程序的测试。本文将介绍如何配置Python和Selenium,搭建一个高效的自动化测试环境。Seleium安装我们可以直接在项目的虚拟环境中......
  • 软件测试/人工智能|教你掌握 Conda 的基本用法
    前言作为一名技术爱好者或者开发人员,我们可能经常需要管理不同版本的软件包或创建独立的开发环境。Conda是一个强大的工具,能够帮助我们轻松完成这些任务。接下来,我们将介绍Conda的基本概念和常用操作,帮助大家快速上手。什么是Conda?Conda是一个开源的软件包管理系统和环境......
  • 软件测试/人工智能|Edge浏览器实用插件推荐
    前言我们要把edge玩出花,让它充分发挥自己的强大实力,就需要安装各个功能强大的插件,这些插件可以帮助我们实现各种功能,本文就来给大家介绍一下几款实用的edge浏览器插件。AdblockPlus广告会降低我们的浏览体验,AdblockPlus能够屏蔽网页上的广告,我们的浏览更加干净和快速。我们......
  • 软件测试/人工智能|解决Selenium中的异常问题:“error sending request for url”
    前言在使用Selenium自动化测试时,有时会遇到“errorsendingrequestforurl”这样的异常。这个问题通常与Chrome浏览器驱动程序和网络请求相关。本文让我们来了解如何解决这个问题。问题原因这个异常通常出现在Selenium与Chrome浏览器交互时,可能由于网络请求或Chrome驱动程序......
  • 软件测试/人工智能|教你轻松玩转Edge浏览器
    前言提到Windows系统自带的浏览器,大家第一反应就是IE,对IE大家都是深恶痛绝的,然后大家就纷纷转向了Chrome和Firefox;应该说微软也是知道大家对IE的不满,痛定思痛之后,推出了基于Chromium内核的新浏览器——Edge,我本来也是拒绝的,但是使用之后,就真香了,使用十分方便,功能十分强大,因此本......