返回顶部
首页 > 资讯 > 后端开发 > Python >Python selenium根据cla
  • 1033
分享到

Python selenium根据cla

Pythonseleniumcla 2023-01-30 22:01:56 1033人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

  在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的。但是实际工作中,很多前端开发人员并未给每个元素都编写id属性。通常一段html代码如下: 1 <div class="sui-tips

  在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的。但是实际工作中,很多前端开发人员并未给每个元素都编写id属性。通常一段html代码如下:

1 <div class="sui-tips s-isindex-wrap sui-tips-exceedtipnews" style="display: none; width: auto;"><div class="sui-tips-arrow" style="left: 15px;"><em></em></div><div class="sui-tips-body">今天召唤我太多次啦,<br>明天再来调教小度吧!`(*∩_∩*)′</div></div>

这个例子中,最外层的div就没有id属性,此时,可以基于class属性来定位元素。常见的基于class定位元素的selenium写法如下:

一、
driver.find_element_by_class_name("classname")
但是好多时候,很多并列的元素如list表单,class都是共用同一个,如:

此时driver.find_elements_by_class_name("classname")  就可以派上用场了,该方法可以返回的是一个list列表,那么所有针对list的方法在它上面都同样适用。比如,如果我们知道想要定位的元素在页面中是第n个,则可以这样定位:

二、

driver.find_elements_by_class_name("classname")[n]   (注意:是elements,不是element)

需要注明的是,使用上述方法,即使这网页中样的元素只有一个,得到的依旧是一个list对象,只不过长度为1.

当然如果你对CSS方法比较熟悉,还可以通过css来定位,selenium同样是支持的,css中,"."后面跟class名即可,一个常规的写法如下:

三、

driver.find_element_by_css_selector('.dtb-style-1').click()   

如果你的例子足够特殊,这个元素的classname有多个,上面的方法还可以用多个"."进行并行连接。如:

driver.find_element_by_css_selector('.dtb-style-1.table-dragColumns').click()

还有一种方法同样可以支持多个类的情况,还是css属性方法:

driver.find_element_by_css_selector("[class='dtb-style-1 table-dragColumns']") 用空格分隔即可。

如果你对css属性不熟悉的话,也不打紧,强大的Chrome浏览器能自动帮你生成元素的xpath、css等多种属性。拿百度首页的源码举例,在页面源码文件,定位到元素后,右键,效果如下:

生成的代码复制后,针对此场景可以直接拿来用,但是鉴于现在的网页更新非常频繁,建议还是要在w3c下简单学习下xpath、css selector等重要方法,那样我们可以写出非常灵活的代码,对页面的细微调整会有更强的适应性。

最后,我们还可以通过强大的xpath来定位元素,如果元素有多个class,我们只用选择其中一个放入xpath中即可,否则程序会出错。示例如下:

四、

driver.find_element_by_xpath('//div[@class="u_sp"]/a[1]').click()

  这么多方法中,xpath是最最灵活的,因为xpath内置了很多函数,在某些场合中你可能就需要依靠这种灵活性,"灵活"就不可避免的会带来复杂性。尽管如此,笔者还是鼓励你们,在实际工作中,每种定位元素的方法都要学会,很多时候,你会发现你精心写的方法一不小心就不灵了,这个时候掌握多种定位方法,就显得尤为重要了。

有了这些技能,从此在python selenium的世界里,基于class属性定位元素将显得so easy。

 

 

 

 

 

 

 

--结束END--

本文标题: Python selenium根据cla

本文链接: https://lsjlt.com/news/179487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python selenium根据cla
      在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的。但是实际工作中,很多前端开发人员并未给每个元素都编写id属性。通常一段html代码如下: 1 <div class="sui-tips ...
    99+
    2023-01-30
    Python selenium cla
  • python + selenium +
    使用python3.6在Ubuntu中进行了一项使用Chrome headless浏览器的工作, 在此记录下遇到的问题以及解决方法. 入门 参考 unning-selenium-with-headless-chrome Ubuntu中如何...
    99+
    2023-01-31
    python selenium
  • selenium 2 + python
    在使用selenium 2的时候,经常会碰到打开一个页面后新页面以新窗口打开,因为脱离当前窗口需要重新定位窗口,可以用以下方法定位到需要的窗口。#父窗口是0 browser.switch_to_window(browser.window_h...
    99+
    2023-01-31
    selenium python
  • python selenium erro
    我用的是ubuntu 16.04解决办法:下载    geckodriver  (github下载链接)解压缩 tar zxvf  geckodriver-v0.15.0-linux64.tar.gz  ##解压出来的是一个单文件##执行 ...
    99+
    2023-01-31
    python selenium erro
  • python+selenium+auto
    在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下第一种:type=file的上传文件,类似如下的使用类似这样的代码就可以完成:driver.find_element('name','file').send_k...
    99+
    2023-01-31
    python selenium auto
  • python-selenium Page
    Page Object是一种程序设计模式,将面向过程转变为面向对象(页面对象),将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。可以使代码复用,降低维护成本,提高程序可读性和编写效率。#用page object...
    99+
    2023-01-31
    python selenium Page
  • python selenium中Excel数据维护指南
    接着python里面的xlrd模块详解(一)中我们我们来举一个实例: 我们来举一个从Excel中读取账号和密码的例子并调用: ♦1.制作Excel我们要对以上输入的用户名...
    99+
    2024-04-02
  • Python+Selenium与Chro
    开篇:最近有学员在学习Selenium时,使用firefox有问题,就想尝试chrome,而其使用crome时又遇到个各种问题..。特整理如下文章供遇到该问题的人参考整篇:如何解决呢?可参考如下..基础环境介绍:python3.5 + se...
    99+
    2023-01-31
    Python Selenium Chro
  • python + selenium 弹出
    alt = browser.switch_to_alert()alt.accept() 1、返回值对其判断时。str()避免语法错误2、字典不能有相同的键...
    99+
    2023-01-31
    弹出 python selenium
  • selenium+python(之一)
    各位好,今天是我第一次写博客,工作了也有一段时间了,今天想分享一些学习到的内容,大家共同学习,共同进步,写的不好的地方,多多待见,比较功底有限。 今天想写一些自动化相关的东西,也算是记录一下学习的历程吧。 环境:python+seleniu...
    99+
    2023-01-31
    selenium python
  • 基于Python的selenium
    一、安装 1.1安装Python,安装Python时需要勾选增加环境变量 如果之前已经安装过Python,需要将Python相关文件以及环境变量删除 1.2安装成功:在命令行界面下输入Python,最...
    99+
    2023-09-15
    python selenium pycharm
  • python基于selenium+cv2
    首先贴上我的安装包 一、selenium安装  I.打开pycharm,点击Settings,找到Project Interpreter,点击右边的下拉菜单下的show All...选项  II.点击show All...选项后,点击框...
    99+
    2023-01-30
    python selenium
  • python+ selenium 实现简
    本文用到的文件的下载地址 百度网盘链接: https://pan.baidu.com/s/1wIda-wUz4X_Ck72xgZ6Ddg 提取码: etaa 1 安装Python 和 selenium (1)下载Python 官网地址: ...
    99+
    2023-01-31
    python selenium
  • python selenium系列(11
    一 前言Selenium系列文章已经基本涵盖了主要的知识点,至于PO模式,发现有篇文章写的挺好的,后续转载分享过来,哈哈。Python Web UI自动化技术就要告一段落了,接下来打算写Django Web开发相关的文章,希望有兴趣的同学可...
    99+
    2023-01-31
    系列 python selenium
  • python selenium系列(四)
    一 前言在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位、操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和...
    99+
    2023-01-31
    系列 python selenium
  • python selenium爬取kuk
    在爬取这个网站之前,试过爬取其他网站的漫画,但是发现有很多反爬虫的限制,有的图片后面加了动态参数,每秒都会更新,所以前一秒爬取的图片链接到一下秒就会失效了,还有的是图片地址不变,但是访问次数频繁的话会返回403,终于找到一个没有限制的漫画网...
    99+
    2023-01-31
    python selenium kuk
  • python selenium系列(五)
    一 前言提起断言,接触过软件测试相关工种的同学们,一定不会陌生。比如,功能测试/自动化测试判断用例是否通过,靠的就是检查测试结果与预期是否一致;稍微不同的是,功能测试的结果检查是由人工完成的,而自动化测试是通过预先把期望结果写入脚本,并与实...
    99+
    2023-01-31
    系列 python selenium
  • python selenium系列(三)
    一 前言开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容。在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素。 二 操作方法...
    99+
    2023-01-31
    系列 python selenium
  • selenium RC 与python集
    下载seleniumRC启动selenium server: java -jar selenium-server.jar下载python的selenium包如果python里有pip install -U selenium自动下载安装后,s...
    99+
    2023-01-31
    selenium RC python
  • python selenium系列(二)
    一 前言元素定位,是操作元素的第一步,也是WebUI自动化的难点和核心。 二 元素定位方法selenium提供了内置的方法完成对待操作元素的定位,主要分为8类,其中,每类又可细分为定位单个元素和定位多个元素,另外还提供了2个私有方法。详细如...
    99+
    2023-01-31
    系列 python selenium
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作