• 0
  • 0
分享
  • web自动化之基础定位方式——软件测试圈
  • 饭团🍙 2022-03-24 14:39:37 字数 1482 阅读 647 收藏 0

简单的写写 id,class,name,text定位吧,xpath上片文章详细解答了

在学习html页面的同学都知道,html里的标签属性有id、class、name、text等等吧?

接下来我们就简单的讲讲如何定位id、class等

#首先先导入包
from selenium import webdriver
#其次打开浏览器,访问百度
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

打开百度,我们按F12,点击百度一下,看看它有个ID属性,

1.jpg

那在代码里,我们可以这样

#id定位
driver.find_element_by_id('su').click()  #.click() 是点击操作
#class 上图可以看到百度一下的class属性是"bg s_btn"
driver.find_element_by_class_name("bg s_btn").click()  #.click() 是点击操作

我们定位下登录,发现有name和text属性

2.jpg

#name 代码如下
driver.find_element_by_name("tj_login").click()
#text 代码如下
driver.find_element_by_link_text(u'登录').click() ##为什么要用u呢?因为有些浏览器不支持中文,需要编译一下。

在我们driver .find_xxxx 中,发现find_element_by_link_text 还有find_elements_by_link_text() 还有find_element

这三种的区别呢

  1. find_element_xx_xx_xx 这个表示html页面的唯一性,也就是属性必须是唯一的

  2. find_elements_xx_xx_xx 这个代表页面有多个值的时候。就返回多个值(不细写)

  3. find_elemen 这个是什么呢?咱们来看看它的源码,如下:

我们ctr+左键查看这个源码

3.jpg

发现:不管是id还是class还是name等等,它源码里返回的值是self.find_element(by=By.NAME, value=name),那find_element(by=By.NAME, value=name),是什么呢?咱们再看看这个的源码find_element

4.jpg

我们看到这个find_element,它对我们传进来的ID进行了判断。看到By.ID没?我们再看看By.ID的BY源码

5.jpg

翻译一下,就是支持一些id、class等定位,那跟我们find_elemen有什么关系呢?关系大着呢,因为没有它的支持,是不会有ID、xpath等定位方法的。我们可以根据By来进行一些定位

6.jpg

代码:

#导入驱动
from selenium import webdriver
#导入By文件
from selenium.webdriver.common.by import By
#打开浏览器访问百度
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
col = (By.ID,"su")#用一个变量值去收
driver.find_element(*col).click() #把接收的变量进行 *(解包),完成点击操作

BY支持全部定位格式操作只需要:By.xxx 就可以了

7.jpg


作者:我不管,我爱测试

原文链接:https://blog.csdn.net/qq_39413365/article/details/90673741

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   本文针对自动驾驶汽车道路测试相关内容进行了梳理,仅供参考。  首先大家最想知道的应该就是公共道路测试的时候会用到哪些设备?硬件结构是什么样的?以下展示了路测车载设备的拓扑结构:  1.一般采集那些数据?  ①使用VX1000设备(如VX1135等)配套的上位机软件CANape通过CAN总线走以太网采集域控内部数据、各种总线数据(FlexRay、底盘、前雷达、角雷达等)以及参考摄像头等。  ②视觉感知数据。  视觉感知需要采集的数据包括WebSocket和原图数据,其中WebSocket通过ADCU的百兆网口接到工控机,直接用exe可执行软件来采集即可,原图通过ADCU的USB接口直接落盘到...
            0 0 3712
            分享
          •   千万别忽略这条消息,我怕你错过免费的课程。只要点击下方链接填写测试行业调查问卷,价值398元的测试课程就可带回家。链接:http://vote.51testing.com/  首先,如果你现在来面试。  企业中面试官评估你的能力,无论你是做什么岗位的,自动化,测试开发,性能,管理,第一个肯定是工作经验。  比如说1-3年,3-5年,5年以上。都是一个临界点,那面试官会从哪些方面去考量你呢?  第一个,需求分析能力  就是说大家对这个需求一定要非常熟悉,不仅仅是产品经理给到的需求,我们需要从这个需求它的商业背景,价值。  产品经理提出这个需求能给我们产品带来什么样的价值,  然后我们为什么要...
            0 0 1136
            分享
          • 功能测试可以说是件简单的事情,但是想要做好却并不那么容易。笔者所测的业务是商业化广告相关的CRM系统,整条业务线有18个子系统,很多子系统的流程相当长且繁复,功能逻辑复杂,想要上线后没有漏测着实不容易。不过从我接手以来,有幸还没有发生大的漏测问题。今天笔者就来聊聊自己对于功能测试的一些个人经验和思考。接到需求后,我一般会将需要做的工作分为三部分,分别为:需求分析、测试用例、以及测试执行。当然,有一个很重要的大前提,那就是要足够熟悉你所测的系统。下面就分别来聊聊这三部分。需求分析+设计分析拿到一个需求,第一步应该做的就是需求分析。这个环节很多人不在乎,觉得这不是测试的工作,而是产品应该的工作,测...
            10 9 1799
            分享
          • 7 月 22 日晚,Dify 主创团队和用户们临时性地组织了一场高质量的线上交流活动。交流会主要围绕 Dify 的产品规划、用户对于 LLM 的探索和理解、用户使用 Dify 过程中遇到的问题和困惑等方面展开讨论。相信对所有基于 LLM 或 Dify 创造应用的小伙伴们都能提供很好的思路和借鉴。错过的小伙伴看这里,我们整理总结了相关的问题和讨论要点,供大家阅读参考(Question 部分为不同用户提出的问题,Answer 部分为 Dify 团队的理解和答疑)。关于 Dify 产品规划Dify 产品上线以来受到很多开发者朋友的关注和喜爱,在平台上已经创建了 3 万多个应用(仅云端版),我们希望能...
            0 0 2224
            分享
          • 计划:属于组织管理层面的文档,从组织管理的角度对测试活动进行规划; 方案:属于技术层面的文档,从技术的角度对测试活动进行规划。  测试计划: 对测试全过程的组织、资源、原则等进行规定和约束,并制定测试全过程各个阶段的任务分配以及时间进度安排,并提出对各项任务的评估,风险分析和管理需求。  测试方案: 描述需要测试的特性,测试的方法,测试环境的规划,测试工具的设计和选择,测试用例的设计方法,测试代码的设计方案。 测试方案需要在测试计划的指导下进行,测试计划提出“做什么”,而测试方案明确“如何做”  软件测试...
            0 0 820
            分享
      • 51testing软件测试圈微信