• 0
  • 0
分享

selenium提供了很多用于定位元素的方法,首先我们自己需要知道元素有哪些属性,这就需要用到安装测试环境中firebug来定位

打开firefox浏览器,按下F12键,我们就可以看到如下图所示的界面:

1368146-20180517092352895-437491947.png

点击中间红框中的按钮再点击页面上的元素,就可以在下面页面代码处看到对应的属性,比如输入框有id、class、name、value还有个tag属性,除了value之外其他都可以作为定位该元素的方法。相关代码如下:

driver.find_element_by_id("kw").send_keys('python')
driver.find_element_by_class_name("s_ipt").send_keys('python')
driver.find_element_by_name("wd").send_keys('python')
driver.find_element_by_tag_name("input").send_keys('python')

当然,有些属性可能在一个web界面上有多个对应的值,这时候可以用find_elements_by_**来获取后,再根据位置来定位,比如tag为input的有3个,当前的需要的输入框在第二个,那么可以写成如下:

driver.find_elements_by_tag_name("input")[1].send_keys('python')

一般在定位一个元素的时候,会通过他在web界面唯一属性来定位。

当然定位元素的方法还有其他几种:

1、xpath方法,这个方法在比较固定的web界面中是比较实用的,比如百度输入框,可以通过下面来定位

driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python')

xpath方法可以是完整路径,也可以是部分路径,一般根据实际情况来设置,后面会专门讲到 

2、css方法,这个方法是最快速的查找元素方法,可以根据不同条件来定位元素,比如百度输入框,可以通过下面的语句定位:

driver.find_element_by_css_selector('input.s_ipt').send_keys('python')

css定位手段灵活多变,后面会专门讲到

3、如果元素是个链接,我们可以通过link方法来定位,比如百度首页右上的一排元素,可以通过这种方式来定位,比如hao123网址:

driver.find_element_by_link_text('tj_trhao123').click

这些都需要经常的使用才能熟悉,不要急于求成。长时间不用自然也会忘掉


作者:水里的芋头

原文链接:https://www.cnblogs.com/watertaro/p/9049434.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •  背景介绍:  介绍搜狗输入法按键响应自动化测试的方法及工具,虽然本文中的工具是深度定制化的输入法测试工具,无法应用在其他项目,但相信本文中所使用的Xposed Hook技术、socket多进程通信技术以及自动化思想会对大家有帮助。  按键响应测试是什么?  当我们在手机上打一个字时,它大致经历了如下过程:  因此,在以上过程中,从用户按下软键盘上的按键到候选词显示的所花费的时间,是衡量输入法性能的一项重要指标。  按键响应怎么测试?  按键响应的测试方法有两种:日志方式和视频拍摄方式。  日志方式:在上述用户按下按键时,程序执行onKeyEvent函数中写日志记下时间戳T1;当开始显示候选词...
            0 0 2064
            分享
          •   2022年早已过半,来个迟到的年中总结,说实话,2022,很迷茫,然后过的非常不如意,倒不是上一年的职业目标没达到,而是接下来的路根本不知道如何走。在没解决这个问题之前,或者说没搞清楚自己的方向之前,是迟迟不能落笔的,啊不,应该是落键盘。  下班后花了几天的时间研究了下测试的职业生涯规划,在许许多多的文章之中穿梭,结合前阵子和某公司t3级的大大面试,对自己接下来的几年职业规划,总算有了眉目,让恍惚的心总算有了着落。  先说我这三年坎坷的经历  刚毕业,计算机专业的我进入了软件测试这个行业,然后外包到了某bat公司,在今天看来,这间公司应该是学习资源最丰富的公司,可悲哀的是,基础能力薄弱,资...
            0 0 1483
            分享
          • 它跟安卓APP与IOSAPP有什么样的区别呢?★我们以往的APP是使用原生系统内核的,相当于直接在系统上操作,是我们传统意义上的软件,更加稳定★H5的APP先得调用系统的浏览器内核,相当于是在网页中进行操作,较原生APP稳定性稍差,似乎还没有百万级用户量的H5APP★H5最大的优点是可以跨平台,开发容易,APP的话需要用ANDROID的语言和IOS的语言各自写,H5只要开发一套★简单的说:H5是基于web,native基于客户端H5测试应该从哪些方面考虑?1、业务逻辑相关除基本的功能测试之外,H5页面的测试,需要关注以下几点:1.1 登陆目前H5与native各个客户端都做了互通,所以大家在测...
            0 0 2101
            分享
          • 为了恢复作为给定事务的一部分所做的所有更改,执行 ROLLBACK 命令。这将导致还原与事务相关的更改。ROLLBACKS 通常在事务执行期间观察到/发生错误时应用。让我们看一个使用 ROLLBACK 命令的示例。我们将使用相同的交易借记 ACC1,贷记 ACC2,资金为 100 美元START TRANSACTION; --statement1UPDATE bankaccounts SET funds=funds-100 WHERE accountno='ACC1'; --statement2UPDATE bankaccounts SET funds=funds+100 WH...
            0 0 1829
            分享
          • selenium简介介绍  Selenium [1]  是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。功能框架底层使用JavaScript模拟真实用...
            1 1 1240
            分享
      • 51testing软件测试圈微信