selenium自动化测试之学会元素定位(代码片段)

fnng fnng     2022-12-17     280

关键词:

这是我经常被问到的一个问题,也是我很讨厌回答的问题,因为要想回答这个问题需要知道上下文。什么样式的元素,有哪些属性,是否有表单嵌套,都尝试了哪些定位方法。。。而且没几个提问者能事先详细的说明这些。哪儿像提bug一样描述重现步骤,而且每一步都截图,生怕开发重现不了。反正,向我提问者没见过这样的,大多就报着试试态度,你爱回不回,碰碰运气说不定就回我了。

当然,我写这一篇文章的目的肯定不是为了吐槽,我是打算拿这个链接丢给他看,所以,这里会总结常见几种情况,以及解决办法。如果本文能不解决你的问题,你问我也没用。


1、是否有表单嵌套。

技术分享图片

像这样顺着定位的元素往上找,如果找到了<iframe> 标签说明你定位的元素是在表单里面的,你需要先切换到这个表单,再定位元素。

参考例子


2、是否打开了新窗口。

技术分享图片

像这样的,就是两个窗口,从登录窗口点击“注册”打开的新窗口。不切换到注册窗口怎么操作?

参考例子

本来多窗口不是眼瞎都能看出来,但是,前两天一个同学的情况,登录界面,点击了登录之后旧的登录窗口关闭,新的登录之后的窗口打开。这就有点迷惑人了。不过,你依然可以通过多窗口的处理来解决这个问题。


3、元素不可见或不满足条件。

有些元素并不是不存在,而是不可见;或者你的操作步骤缺少前提步骤。
技术分享图片

像这样,我要想操作“搜索设置”不需要先鼠标悬停在“设置”上么?鼠标悬停“设置”链接上就是前提条件。
技术分享图片

请把鼠标从“设置”上面移开,是不是发现display为none,它所在的整个

标签就是因为这个属性的变化而隐藏的。


4、定位方式不唯一,或根本就找不到任何元素。

我都试了好几种定位方式了,怎么看这个元素就是这个属性,没错啊!这应该是你最常遇到了情况。这个时候怎么办呢?很简单。检验你的定位方式到底有没有找到元素。

技术分享图片

不管用什么定位方法,请用find_elements_by_xxx() 来定位一组元素。如果统计结果是0,说明你的定位方法找不到任何元素,你问我也帮不了你。如果大于1,说明你这种定位方法不是唯一的。

其实,不唯一还好办,我们可以进一步筛选。
技术分享图片

把元素的所有属性都打印出来,看看第几个才是你想要的。
技术分享图片

然后,你就可以愉快的选择你想要定位的元素了,像这样。
技术分享图片


最后,赠送一个快速定位元素技巧。

启动Chrome浏览器,打开“开发者工具”,切换到console标签,通过 document.querySelector() 方法使用CSS语法定位元素。
技术分享图片

你可以快速的验证CSS是否可以定位到元素,如果可用就复制到Selenium当中,不用每次通过运行Selenium脚本来验证,效率上快上很多。

什么?你不懂CSS定位?或者你看不懂我在讲什么。 你可能缺一本《Selenium 自动化测试实战 --基于python语言》






selenium-元素的定位(代码片段)

前戏元素的定位是自动化测试的核心,要想操作一个元素,首先应该识别这个元素。Webdriver提供了一系列的元素定位方法,常用的有id,name,classname,linktext,partiallink,tagname,xpath,css讲定位之前先要了解说一下怎么定位,我... 查看详情

selenium自动化测试-3.元素定位(代码片段)

这次我们要分享的是对元素的定位,在一个页面中有很多不同的策略来定位一个元素,我们选择最合适的方法即可。一个页面最基本组成单元是元素,想要定位一个元素,我们需要特定的信息来说明这个元素的唯... 查看详情

selenium自动化测试-3.元素定位(代码片段)

在上一篇:Selenium自动化测试-元素定位(1),我们分析了id,name,class,tag,link_text及partial_link_text共6种定位方法,其中id、name最常用。 有时候我们发现网站并没有id、name等属性。那么,我们可以用更高级的定位方... 查看详情

selenium自动化测试之元素定位三(css定位)

1.1CSS定位1.1.1绝对路径定位目标查找第一个文本为“猜猜看”的a标签实现CSS表达式html>body>div>a[.=”猜猜看”]python表达式driver.find_element_by_css_selector(‘html>body>div>a[.=”猜猜看”] 查看详情

selenium自动化测试bing(代码片段)

上一篇自动化工具下载提取码:1234文章目录自动化测试适用条件测试工具禅道:selenium下载步骤selenium的特点UI自动化测试vs接口自动化测试selenium2:selenium1+webdriver原理查看chrome版本Python语言来写自动化测试脚本代码示例1.2.... 查看详情

selenium自动化测试bing(代码片段)

上一篇自动化工具下载提取码:1234文章目录自动化测试适用条件测试工具禅道:selenium下载步骤selenium的特点UI自动化测试vs接口自动化测试selenium2:selenium1+webdriver原理查看chrome版本Python语言来写自动化测试脚本代码示例1.2.... 查看详情

selenium基本用法以及元素定位(代码片段)

...源Web功能测试工具系列,提供一套测试函数,用于支持Web自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。他支持IE、Firefox、Safari、Chrome、Android手机浏览器,也支持Java、C#、Python、Ruby、PHP等语言,支... 查看详情

使用selenium必会之技能,xpath定位元素

《跟着日邢一珊,学习自动化测试》-----第四讲20170824WEB自动化测试Selenium的使用 (四) XPATH元素定位。作者:日邢一珊 自动化测试脚本分享群:654395302 、 567415093 打赏,就是鼓励我写作的动力。2.883.886.8812.88... 查看详情

基于python实现ui自动化3.2selenium通过js定位元素(代码片段)

python-UI自动化之selenium元素定位1.0selenium工具介绍2.0selenium环境搭建3.0selenium常见8大元素定位3.1selenium通过By定位元素3.2selenium通过JS定位元素JS定位页面元素结尾1.0selenium工具介绍1.0selenium工具介绍2.0selenium环境搭建2.0selenium环境搭建... 查看详情

selenium学习笔记——定位元素

这里介绍的自动化脚本是java编写的,python编写的以后会更新(看学会python的时间O(∩_∩)O~)?(^?^*)先介绍一下自动化测试吧~其实自动化测试是个广泛的概念,一般分为三种:自动化单元测试、自动化接口测试和UI自动化测试。自动... 查看详情

基于python实现ui自动化3.1selenium通过by定位元素(代码片段)

python-UI自动化之selenium元素定位1.0selenium工具介绍2.0selenium环境搭建3.0selenium常见8大元素定位3.1selenium通过By定位元素结尾1.0selenium工具介绍1.0selenium工具介绍2.0selenium环境搭建2.0selenium环境搭建3.0selenium常见8大元素定位3.0selenium-webdri... 查看详情

ui自动化之——元素定位(代码片段)

一、概述UI自动化要做的就是模拟鼠标和键盘对元素进行操作,单击、输入或鼠标悬停等操作,所有的这些操作都建立在找到元素的基础上,下面说一下,selenium的八大元素定位,重点说一下xpath元素定位。二、selenium的八大元素... 查看详情

爬虫+自动化利器selenium之自学成才篇(代码片段)

文章目录selenium简介selenium安装安装浏览器驱动确定浏览器版本下载驱动定位页面元素打开指定页面id定位name定位class定位tag定位xpath定位css定位link定位partial_link定位浏览器控制修改浏览器窗口大小浏览器前进&后退浏览器刷新... 查看详情

爬虫+自动化利器selenium之自学成才篇(代码片段)

...换操作窗口切换表单切换弹窗处理❤系列内容❤爬虫+自动化利器selenium之自学成才篇(一)主要内容:selenium简介、selenium安装、安装浏览器驱动、8种方式定位页面元素、浏览器控制、鼠标控制、键盘控制爬虫+... 查看详情

selenium3元素定位详解与封装(代码片段)

为什么需要自动化测试在学习自动化测试之前,首先需要思考清楚的是为什么需要学习自动化测试,以及今天业界谈的研发效能对测试而言意味着什么?其实这就需要在测试以及整体研发的角度来思考问题,在今... 查看详情

webui自动化测试之selenium3

参考技术A一、WebDriver(importorg.openqa.selenium.WebDriver)操作浏览器selenium通过WebDriver对象来定位页面元素1、打开浏览器打开火狐浏览器:WebDriverdriver=newFireFoxDriver();打开IE浏览器:WebDriverdriver=newInternetExplorerDriver();打开chrome浏览器WebDriv... 查看详情

selenium元素定位之css定位

...webdriver进行单击、双击、输入等操作,所以元素定位是UI自动化测试的前提条件。selenium总共有八种定位方法 driver.find_elements_by_id()driver.find_element 查看详情

selenium元素定位之css定位

...webdriver进行单击、双击、输入等操作,所以元素定位是UI自动化测试的前提条件。selenium总共有八种定位方法 driver.find_elements_by_id()driver.find_element 查看详情