UI的自动化本质就是识别元素,操作元素,而元素的识别就是通过HTML的标签和属性,所以对于基本的HTML的只是是必备的

随着页面复杂度的提升,加之很多公司的开发也没有统一规范,这就给识别元素造成了非常大的麻烦,非常的被动

一般要选取唯一标识的元素属性来进行定位.常用的几种元素定位方法:

id  driver.find_element_by_id("id的属性值")

Name  driver.find_element_by_name("name的属性值")

class name  driver.find_element_by_class_name("class的属性值")

link text  driver.find_element_by_link_text("超级连接的名")

partial link text  同上,只是可以用模糊匹配的方式,截取一种一部分文字来使用

比如,有一个超级连接为"为了学习UI自动化",那么使用该方法就可以写为driver.find_element_by_partial_link_text("自动化")

tag name  driver.find_element_by_tag_name("标签名"),比如input,不会用它来定位一个元素,二是常用于一组元素的定位

xpath  driver.find_element_by_xpath("xpath路径")  Xpath的定位可以使用火狐下的firepath插件.当一个元素通过上面的方法都无法定位到时,可以尝试使用xpath

css selector  dirver.find_element_by_css_selector("css selector"),比较麻烦,且不容易理解.一般可以通过元素的id\class\标签的属性来进行定位(使用xpath比较方便快捷)

规则如下:

  #表示属性,比如#kw

  .表示class属性,比如s._ipt

  标签名直接写,比如input

Selenium-元素定位与操作的更多相关文章

  1. 3 - Selenium元素定位和操作

    3.1定位 <button id="gbqfba" aria-label="Google Search" name="btnK" cl ...

  2. 自动化测试基础篇--Selenium元素定位

    摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...

  3. selenium元素定位陷阱规避

    为什么selenium可以在各个浏览器上运行?因为selenium在与各个浏览器驱动执行前,会先把脚本转化成webdriver, webdriver wire协议(一种json格式的协议),这样就与脚 ...

  4. Selenium3 + Python3自动化测试系列二——selenium元素定位

    一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...

  5. selenium元素定位之css选择器

    在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...

  6. 我是这么学习Selenium元素定位操作的

    写在前面 做web自动化测试都有体会,本质也就是通过操作页面元素对象来模拟用户操作行为,那么首先我们先找到这些元素对象,然后才能进行一系列操作. 我们得先告诉自动化工具或者说代码要操作那个元素,毕竟代 ...

  7. java+selenium元素定位和元素操作

    1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...

  8. UI自动化学习笔记- Selenium元素定位及元素操作

    一.元素定位 1. 如何进行元素定位? 元素定位就是通过元素的信息或元素层级结构来定位元素的 2.定位工具 浏览器开发者工具 3.元素定位方式 Selenium提供了八种定位元素方式 id name ...

  9. Java + selenium 元素定位(6)之iframe切换(即对富文本框的操作)

    在元素定位中,对富文本框的元素定位是特别的,当我们使用普通的元素定位方法对富文本框进行操作时,我们会发现不管我们之前介绍的八种方法中的任何方法,我们都不能成功定位到富文本框,并对其进行操作.那是因为富 ...

  10. selenium元素定位篇

    Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单 ...

随机推荐

  1. 我在面试.NET/C#程序员时会提出的问题(转载)

    转自:http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html 说起来我也面试过相当数量的.N ...

  2. cnn 实例

    http://www.geekcome.com/content-10-3761-1.html http://www.geekcome.com/content-10-3761-1.html http:/ ...

  3. C语言进行站点开发之cgi

     安装Apach 配置ApacheRuntime 以下的过程中一直点击next 配置CGI,放开配置:AddHandler cgi-script .cgi watermark/2/text/aHR ...

  4. 嵌入式专题: S5PV210 - MPEG4编码

    我想说不台的平台,如tiny210和x210.它们的头文件是有稍微区别的. 我这个是x210下的代码.但都须要注意的是NV12T与NV12的问题,默认要求输入的图片是NV12T,经过调整之后,能够同意 ...

  5. 对象复制帮助类---DeepCopy

    有的时候我们在对一个引用类型的对象进行传递操作的时候希望不要直接修改传递过来的对象,而是复制出一份来操作的时候就可以用下面的类进行复制 sing System.IO; using System.Run ...

  6. Mac Python建立简单的本地服务器

    由于Mac自带Python 所以省去我们去下载了 打开终端  执行python stm-macmini:~ apple$ pythonPython 2.7.10 (default, Jul 14 20 ...

  7. python 函数的进阶

    1. 动态参数 位置参数的动态参数: *args 动态接收参数的时候要注意: 动态参数必须在位置参数后面 顺序: 位置参数, 动态参数*, 默认值参数 例子: def chi(a, b, *food, ...

  8. centos7 运行postgres 数据库脚本db.sql

    [root@localhost ~]# su postgresbash-4.2$ psqlcould not change directory to "/root": Permis ...

  9. Tensorflow—gpu报错

    一晚上什么事都没做,就一直在查找tensorflow1.4缺少cudnn64_6的错误. 最后发现自己一直用的是cudnn64_7,即使改成cudnn64_6仍不可行.主要受实验室大佬安装的cudnn ...

  10. GPS基础知识

    GPS基础知识 冷启动 冷启动是指模块内部没有任何参的星历或历书的情况下,模块的首次启动,一般而言,由于模块内部没有星历参数,这个时候接收卫星信号开始,就要在天线接收的范围内不停的寻找并下载星历,它的 ...