使用Selenium对网页元素进行定位的诸种方法!

这篇具有很好参考价值的文章主要介绍了使用Selenium对网页元素进行定位的诸种方法!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接。

在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了,下面我们来了解一下如何在查找元素。

3.1 查找和定位网页元素

在上一篇的示例中,我们就演示了如何通过find_element_by_id()方法,根据元素的id值来定位页面元素。

除了根据元素的id值来查找元素外,Selenium还提供了很多查找元素的方法:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

从上图中可以看到,Selenium提供了近二十个find_element族的方法来供我们在页面中查找元素,其中包括id、name、类名、css选择器、链接文本、标签名、xpath等。

定位单个匹配元素的方法有:

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

定位多个匹配元素的方法有:

  • find_elements_by_name
  • find_elements_by_xpath
  • find_elements_by_link_text
  • find_elements_by_partial_link_text
  • find_elements_by_tag_name
  • find_elements_by_class_name
  • find_elements_by_css_selector

我们可以根据不同页面的不同情况来查找定位到我们所需要的页面元素。

3.2 通过id属性进行定位

如果你知道元素的id属性值,那么可以使用find_element_by_id()方法来定位元素,其将返回id属性值与该位置匹配的第一个元素。

百度首页的搜索框结构如下图:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

# coding:utf-8
'''
    @site:zmister.com
 
'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_id('haha')
print(ele)

ele返回的是一个对应的element元素:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

如果没有元素匹配传入的id值,将会抛出一个NoSuchElementException异常:

# coding:utf-8
'''
    @author:州的先生
    @site:zmister.com
    @微信公众号:州的先生
'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_id('haha')
print(ele)

运行代码,因为没有匹配的id值,所以抛出了异常:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

3.3通过name属性进行定位

如果你知道元素的name属性值,那么可以使用find_element_by_name()方法获取第一个匹配name属性值的元素:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

# coding:utf-8
'''
    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_name('wd')
print(ele)

ele返回匹配到的element元素:

C:\Python35\python.exe E:/pythonproject/selenium_env/code/2.py
<selenium.webdriver.remote.webelement.WebElement (session="23d00cea9ce99d36ffcac96cfb3ca12c", element="0.7355927465563321-1")>

如果定位一个没有的name属性值,那么也会抛出NoSuchElementException异常:

# coding:utf-8
'''
    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_name('zmister')
print(ele)

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

3.4 通过Xpath进行元素定位

XPath是用于在XML文档中查找节点的一种语言。由于HTML可以是XML(XHTML)的实现,因此我们可以利用这种强大的语言在网页中进行元素的定位。XPath扩展并支持了通过id或name属性定位的简单方法,并提供了各种新的操作,例如在页面上查找第三个复选框等。

使用Xpath的一个原因是,有时候页面上我们需要定位的元素并没有id属性和name属性,这时候就可以用Xpath以绝对路径的方式进行元素定位,或者是通过id或name属性值定位到父元素再取到子元素。

对于Xpath的知识,在此不做介绍,有需要的同学看看专门介绍Xpath的网站或教程,比如:

  • W3schhool Xpath教程

在此我们简单介绍一下如何快速地通过浏览器获取到页面元素的Xpath路径。在浏览器中打开网页调试控制台,在需要定位的元素上,单击鼠标右键,会出现一个选项栏,在“copy”中选择“Copy XPath”即可:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

# coding:utf-8
'''

    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_xpath('//*[@id="kw"]')
print(ele)

这样,我们通过XPath路径也能够定位到百度首页搜索框:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

3.5 通过标签名来定位元素

当我们想通过元素的标签名称来定位一个元素时,可以使用find_element_by_tag_name()这个方法,其将返回具有给定标签名称的第一个元素:

# coding:utf-8
'''

    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_tag_name('input')
print(ele)

在这里,我们直接通过input的元素标签名来进行定位,因为百度首页上第一个input为搜索框,所以我们也能够定位到:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

如果匹配不到,同样会抛出NoSuchElementException异常。

3.6 通过class类名来定位元素

如果我们想通过元素的class属性值来定位,那么可以使用find_element_by_class_name()方法。其将返回匹配的第一个元素,如果没有匹配的元素,同样会抛出NoSuchElementException异常:

# coding:utf-8
'''

    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_class_name('s_btn')
print(ele)

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

在这里,我们通过class类名定位了百度首页的搜索按钮。

3.7 通过CSS选择器进行定位元素

CSS选择器是一种通过元素的CSS属性值来定位元素的语法,我们可以使用find_element_by_css_selector()方法通过css选择器定位元素:

# coding:utf-8
'''

    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_css_selector('input.s_btn')
print(ele)

CSS选择器的绝对语法我们可以通过浏览器调试控制台中的“Copy”获取到:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

3.8 通过链接标签文字定位元素

除了上述的元素定位方式,我们还可以通过a标签上的文字进行元素定位,使用的是find_element_by_link_text()方法。

在百度首页的最顶部,是有一排链接的,如下图:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

如果我们需要定位到“地图”那个链接元素上,就可以这样操作:

# coding:utf-8
'''

    @site:zmister.com

'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_link_text('地图')
print(ele)

这样就成功的地位到了元素:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

同样的,如果匹配不到,也会抛出NoSuchElementException异常:

# coding:utf-8
'''
    @site:zmister.com
'''
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
ele = driver.find_element_by_link_text('州的先生')
print(ele)

匹配不到链接文字为“州的先生”的元素:

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

3.9总结

在本篇,我们介绍了在使用Selenium打开一个页面之后,如何通过id属性、name属性、class属性、Xpath路径、CSS选择器、标签名等方式对元素进行查找和地位。成功定位页面元素是对页面进行复杂操作的一个重要前提,下一篇我们将会介绍在页面中进行各种操作。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试

selenium怎么找到定位元素,软件测试,技术分享,自动化测试,selenium,测试工具,单元测试,自动化测试,python,软件测试文章来源地址https://www.toymoban.com/news/detail-847083.html

到了这里,关于使用Selenium对网页元素进行定位的诸种方法!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium定位元素方法

    1、通过id定位元素 写法1: element = driver.find_element_by_id(\\\"kw\\\") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value=\\\"kw\\\") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推 2、通过class定位元素 写法1: cheeses = driver.find_elements_by_clas

    2023年04月25日
    浏览(52)
  • selenium定位元素的方法

    Selenium可以驱动浏览器完成各种操作,比如模拟点击等。要想操作一个元素,首先应该识别这个元素。人有各种的特征(属性),我们可以通过其特征找到人,如通过身份证号、姓名、家庭住址。同理,一个元素会有各种的特征(属性),我们可以通过这个属性找到这对象。

    2024年02月14日
    浏览(45)
  • Selenium元素定位方法大全

    作为当下最流行的web UI自动化测试工具,selenium是很多测试同学入门接触自动化测试时学习的第一个工具。想要自动化操作页面上的内容,元素定位是首先必须要学习的核心知识。 因此本文主要介绍selenium的几种最常用的元素定位方法,掌握了这些方法,希望能帮助大家快速

    2024年02月02日
    浏览(67)
  • Python 的 Selenium 库进行元素定位时,XPath的详细用法

    使用 Python 的 Selenium 库进行元素定位时,XPath 是一种常用的定位方式。XPath 是一种在 XML 文档中导航和定位元素的语言,同时也适用于 HTML 文档。下面是 XPath 的详细用法以及一个封装了通过 XPath 定位各种元素的类的示例。 XPath 详细用法: 绝对路径和相对路径 : 绝对路径:

    2024年01月19日
    浏览(56)
  • Selenium常用元素定位方法汇总

    目录 一、webdriver定位方法 1、xpath基本定位用法 2、xpath相对路径/绝对路径定位 3、xpath文本、模糊、逻辑定位 1、 id 定位 2、 name定位 3、 class定位 4、 link定位 --精准定位 5、 partial_link定位 --模糊定位 6、 tag_name定位 --标签名定位 找到页面上所有标签名为input的标签,返回一个列

    2024年02月02日
    浏览(46)
  • Selenium元素定位——八大方法详述

    元素:由标签头 + 标签尾 + 标签头和标签尾包括的文本内容; 元素的信息就是指元素的标签名及元素的属性; 元素的层级结构就是指元素之间相互嵌套的层级结构; 元素定位最终就是通过元素的信息或者元素的层级结构来进行元素定位; webdriver 提供了一系列的对象定位方

    2024年02月06日
    浏览(49)
  • Selenium元素定位方法:link_text定位

    概念:专门用来定位超链接元素(标签)。 练习元素定位使用Link_Text定位方式完成下面操作 打开注册A.html页面,完成以下操作 1).使用link_text定位(访问 新浪 网站)超链接,并点击 2).3秒后关闭浏览器窗口 ①.创建浏览器驱动 ②.打开测试网址 ③.获取要定位超链接文本类容,用拷

    2024年02月06日
    浏览(41)
  • Selenium元素定位方法:css_selector定位

    认识CSS定位 CSS: 概念:(Cascading Style Sheets)是一种语言,用来描述HTML元素的显示样式。 选择器:一种表达式,可以找到HTML中的标签元素。 css定位 概念:selenium利用选择器定位元素的定位方式。 方法:driver.find_element_by_css_selector(选择器表达式) 1、id选择器 语法: #id属性值 前

    2024年02月13日
    浏览(48)
  • selenium新版元素定位方法、元素操作与基本API

    注意:selenium新版元素定位需要导入方法By,使用By来调用元素定位方法     from selenium.webdriver.common.by import By     标签的 id属性具有唯一性,就像人的身份证,不存在根据一个id属性定位到多个标签的情况。假设有个iframe标签如下,其 id 属性值为\\\"actionFrame\\\"。 我们可以通过

    2024年02月03日
    浏览(67)
  • selenium元素定位---ElementClickInterceptedException(元素点击交互异常)解决方法

    目录 前言: 1、异常原因 2、解决方法: 当使用Selenium进行元素定位和交互时,可能会遇到 ElementClickInterceptedException (元素点击交互异常)的异常。这通常是由于页面上存在其他元素或弹出窗口遮挡了要点击的元素。 在编写ui自动化时,执行报错元素无法点击:ElementClickInt

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包