• 12
  • 12
分享
  • Python-Selenium-定位详解——软件测试圈
  • 北极 2022-02-25 09:37:49 字数 942 阅读 1530 收藏 12

一、id定位

find_element_by_id()

采用id属性进行定位。例如在百度页面中输入关键字 Selenium 进行搜索。百度部分关键html源码如下:

图片1.png

百度输入框和百度一下的按钮都有id,那么定位代码如下:

图片2.png

二、name定位

图片3.png

三、class_name定位

图片4.png

四、xpath定位

find_element_by_xpath()

xpath是XML路径语言,它可以用来确定xml文档中的元素位置,通过元素的路径来完成对元素的查找。HTML就是XML的一种实现方式,所以xpath是一种非常强大的定位方式。

获取xpath、css_selector路径方法

打开谷歌浏览器-->打开百度-->键盘点击F12--点击定位位置-->点击源码位置-->右件copy

图片5.png

绝对路径

如百度搜索框的绝对路径xpath定位:

图片7.png

相对路径(属性标签等)

搜索框还可以利用id和name属性去定位:

图片6.png

标签名input也可以定位,只要在该标签内,任意属性都可以,比如搜索框的maxlength属性:

图片8.png

注:如果元素的单个属性无法确定其唯一性,可以用and连接多个属性去确定

五、css_selector定位

find_element_by_cssselector()
CSS属性定位可以比较灵活地选择控件的任意属性,定位方式也会比xpath快

图片9.png

注:class是用.标记,id是用#标记

图片10.png

图片11.png

六、tag_name定位

find_element_by_tag_name ()

html标签,如input、a、form等
一般定位如下:find_element_by_tag_name("input"),因为一个html一个标签存在多个因此这种定位方式用的比较少

七、link_text 定位

find_element_by_partial_link_text()

定位标签<a>:

图片12.png

八、Xpath&Css定位方法速查表

 图片13.png

九、By定位

图片14.png

十、elements复数定位

说明:复数定位方式每次取到的都是具有相同类型属性的一组元素,所以返回的是一个list值

图片15.png

如上图需要定位到时视频,再点击视频链接

图片16.png

十一、JS的定位

#以下Element 返回单值,Elements复数返回列表值

图片17.png

源码举例

图片18.png

以上为常用的四种js定位方式都需要执行的就execute_script())

图片19.png

源码举例

图片20.png


来源:百度文库

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 在我们的测试工作中,除了需要不断的学习新知识外,还有一个可能常常被我们忽视的工作,那就是反思。反思的重要性不言而喻,可以帮助我们总结过往的经验教训,可以帮助我们重新复盘过去工作中的得失,可以让我们通过曾经犯下的错误找到未来需要规避的问题,可以通过积累的经验获取后续工作中更高效的方法。那么问题来了,做测试的我们,该反思什么呢?在我们团队的日常工作中,每隔一段时间我们就会组织召开一次学习总结会。在这个会上,我们会去回顾过去一段时间工作中大家遇到的问题、学到的新知识、沉淀的经验和方法。在这个过程中,大家互相交流,互相碰撞,互相提问,互相弥补。通过这样的讨论学习,每个人都能感受到这些碰撞出的火花带来的...
            0 1 2146
            分享
          •   摘要:在系统开发的过程中,单元测试是其中的一个重要环节。在Java微服务项目中,Spring框架本身就为我们提供了一套单元测试的框架SpringBootTest。如果我们在学校完成课堂作业或出于兴趣爱好自学,是可以使用Spring自带的单元测试框架进行单测的。  工作中,这种通过SpringBootTest进行单元测试的方式则不推荐使用。其缺点在于,每次执行测试方法都必须启动Spring容器。当项目规模较大、配置较为复杂时,即使只对一个方法进行测试,也需要消耗大量时间启动Spring容器。当我们期望对DAO层方法进行测试时,该方法还有其他缺点:① 如果忘记加进行事务控制的注解,将可能导致数...
            0 0 1223
            分享
          •   Selenium是一个用于自动化Web浏览器的Python库。它提供了一组强大的工具和API,使开发者能够以编程方式控制浏览器的行为,模拟用户与网页的交互。  Selenium可以用于各种Web自动化任务,包括网页测试、数据采集、UI自动化等。它支持主流的Web浏览器,如Chrome、Firefox、Safari等,并提供了丰富的功能,例如:  页面导航:Selenium可以模拟用户在浏览器中输入URL或点击链接来导航到不同的网页。  元素定位和操作:开发者可以使用Selenium定位页面上的元素,例如文本框、按钮、下拉菜单等,并进行点击、输入文本、提交表单等操作。  页面截图:Selen...
            0 0 1005
            分享
          • 什么是接口测试?接口测试是测试系统组件间接口的一种测试。接口测试的重点是检查数据的交换,传递的正确性,以及接口间逻辑依赖关系。提交接口测试的重要意义:实现开发期并行测试,减少页面层测试的深度,缩短整个项目的测试周期。我们测试的接口属于哪一类?服务器接口(基于HTTP协议的接口)大多数人常说的接口测试,通常是B/S架构,由客户端(浏览器)调用,或模拟客户端(浏览器)调用服务器提供的请求接口,由服务器完成处理并返回一个应答的过程。例如:Webservice接口,http接口,jms接口,hessian接口。HTTP接口传递数据最常用的方式:Get方式是从服务器上获取数据;在做数据查询时,建议用Ge...
            0 0 1407
            分享
          • 一、安装Jmeter二、添加HTTP接口测试我们的所以工具都会在Jmeter工具中完成,接来就按照一般步骤来创建一个HTTP接口测试。如上图,右键点击“测试计划”-->“添加”-->“Threads(Users)”-->“线程组”。如上图,设置线程组,线程组主要包含三个参数:线程数、准备时长(Ramp-UpPeriod(inseconds))、循环次数。线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。准备时长:设置的虚拟用户数全部启动的时长。如果线程数为20,准备时长为10(秒),那么需要10秒钟启动20个线程。也就是平均每...
            0 0 856
            分享
      • 51testing软件测试圈微信