新版Selenium使用Python对web页面多个相同Class Name属性的元素进行选择&新老版本对比

这篇具有很好参考价值的文章主要介绍了新版Selenium使用Python对web页面多个相同Class Name属性的元素进行选择&新老版本对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用新版的Selenium对网页代码中存在相同class name属性的元素进行定位,在定位的过程中发现使用先前的定位方法已经无法成功对所要操作组件进行定位,这是什么问题呢?下面为大家进行解答。

大概为了统一编写格式,方便阅读理解,新版本的Selenium出来后,摒弃了旧版的编辑方法,之前的八大定位方式已经不适用于新版的编辑器,对元素进行定位时,系统会进行报错提醒,所以我们在编写脚本的过程中要改变一些相关的方式方法,以下是新老版本元素定位的对比:

一、老版本元素定位方法:

find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_selector()

当定位一组对象时在elements后方加上s,当定位单个对象是使用element即可(此处不多赘余,老版本selenium更多信息网上有很多资料)。

二、新版本元素定位方法

 find_element(By.XPATH)
find_element(By.CSS_SELECTOR)
find_element(By.ID)
find_element(By.TAG_NAME)
find_element(By.class_name,)
find_element(By.PARTIAL_LINK_TEXT)
find_element(By.LINK_TEXT)
find_element(By.name)

使用新版selenium定位对象要先对库进行导入,不能再和之前一样直接使用定位方法。

from selenium.webdriver.commom.by import By

具体定位信息参考网上资料,此处解决相同class name属性的对象定位问题。

selenuim当父元素下有多个同名class,Python,selenium,测试工具

先前driver.find_elements_by_class_name("name")[1]已经无法使用,这是相应的报错信息:selenuim当父元素下有多个同名class,Python,selenium,测试工具

下面是我的解决方案,定义一个list提取全部的对象,然后对对象进行操作:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

dr = webdriver.Chrome()#驱动
dr.get("https://www.csdn.net/") #访问目标网站

elements = dr.find_elements(By.CLASS_NAME,'navigation-right')#使用class方法进行元素定位
sleep(3)#等待3s
element_to_click = elements[2]#选择列表的第三个对象
element_to_click.click()#对选择对象进行点击操作
sleep(3)#等待3s

 使用该方法就可以在新版selenium中对多个相同class属性的元素进行定位操作了!文章来源地址https://www.toymoban.com/news/detail-762568.html

                    

到了这里,关于新版Selenium使用Python对web页面多个相同Class Name属性的元素进行选择&新老版本对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 怎么使用VBA查找多个工作表中相同和不相同的数据

    您可以使用VBA代码来查找多个工作表中的相同和不相同的数据。以下是一些基本步骤: 打开Microsoft Excel,然后打开您想要查找的工作簿。 按下\\\"Alt + F11\\\"键打开\\\"Visual Basic for Applications\\\" (VBA) 编辑器。 在VBA编辑器中,单击\\\"插入\\\",然后选择\\\"模块\\\"以创建一个新的模块。 在模块窗口

    2024年02月12日
    浏览(48)
  • python使用selenium模拟登录网页页面

    python的selenium用于自动化测试,但是在自动化测试的时候也可以用来模拟登录,本次用selenium模拟登录某DN网页 代码如下(示例): 本次使用的是谷歌的内核若有需要,也可以换其他浏览器的内核 首先打开CSDN页面准备在页面中定位元素 为方便操作,直接在开发者界面中复制

    2024年02月13日
    浏览(39)
  • Selenium Python教程第6章:使用页面对象

    页面对象模型(Page Objects Model, POM )是一组旨在表示一个或多个网页的类, 用1个类来保存1个网页上所有的元素,相似的网页可以重用此类。 1个网站通常有多个页面,可以用多个页面类对象分别代表各个页面,其好处有: web应用测试程序或者爬虫程序的结构更加清晰易懂。 对于

    2024年02月10日
    浏览(38)
  • python Web自动化之Selenium的基本使用

    1.selenium介绍 概述 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 优势 开源软件:源代码开放,可根据需要来增加工具的某些功能; 跨平台:linux、windows、mac; 多语言:支持Java、Python、C#、JavaScript、Ruby等。 WebDriv

    2023年04月08日
    浏览(40)
  • web自动化框架:selenium学习使用操作大全(Python版)

    Selenium需要浏览器驱动程序才能与所选浏览器交互。例如,Firefox需要安装geckodriver。确保它在PATH中。 主流浏览器驱动下载地址如下: 浏览器 驱动名称 打开方式及注意事项 地址 Chrome chromedriver driver = webdriver.Chrome() 下载浏览器对应版本的chromedriver.exe 一定要创建对象,不然打

    2024年02月11日
    浏览(43)
  • 一键式 new 多个相同的实例(通过界面按钮 来控制 应用的创建、修改、删除,使用Docker Compose 编排应用所需环境)

    需求:通过界面按钮 来控制 实例的创建、修改、删除。 由于Web应用采用多服务方式开发,每个服务都可以单独访问(单独占用一个端口)。以前部署服务器,采用的Nginx监听端口 转发。但是这样就会在new整个应用的时候,就需要暴露很多端口(每个服务都可以单独访问)、

    2023年04月25日
    浏览(39)
  • 【Python】使用pycharm结合gradio做一个web页面的demo

    紧接上文我们安装好了python3.10,现在需要下载它的开发工具pycharm,我们在这里不过多赘述具体细节,仅简要说明关键步骤,来通过gradio体验一下示例demo pycharm官网:https://www.jetbrains.com.cn/pycharm/ 然后再创建一个 app.py 的一个Python文件 我们需要把 Python解释器 设置为我们前面安

    2024年02月15日
    浏览(37)
  • Python Selenium/WebDriver 操作手册新版

    写在前面:本文为个人整理手册,有错误的地方欢迎指正,参考链接较多,重点参考,侵权删 通俗的解释: 引用:Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运

    2024年02月01日
    浏览(51)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(48)
  • (九) web自动化测试-selenium处理页面的弹框

    input标签可以直接使用send_keys(file path)上传文件 方法: el = driver.find_element_by_id(‘上传按钮id’) el.send_keys(“文件路径+文件名”) 示例: 打开链接:https://image.baidu.com/ 点击识别上传按钮 点击上传按钮 选择本地照片上传 在页面操作的时候会遇到javascript生成的alert、comfirm和pro

    2023年04月11日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包