selenium之八大元素定位:

1、通过ID的方式定位  id是页面的唯一标识

例如:找到百度的搜索输入框

driver.findElement(By.id("kw"))

2、通过tagName的方式定位

用标签名定位非常少 ---一般会重复
driver.findElements(By.tagName("input"));

3、通过className方式定位      className == 样式名
注意:如果元素的class样式有多个,只能通过其中一个去定位
driver.findElement(By.className("s_ipt"))

4、linkText  超链接的完整文本

例如:百度首页的地图
driver.findElement(By.linkText("地图"))

5、partialLinkText超链接部分文本定位

例如:百度首页的百度热搜

driver.findElement(By.partialLinkText("中国迈入创新型国家行列"))

6、name ---name属性

例如:百度首页的输入框
driver.findElement(By.name("wd"))

7、cssSelector
1)根据标签名定位 tagName
driver.findElements(By.cssSelector("input"));

2) 根据ID定位 id前需要加上一个#
driver.findElement(By.cssSelector("#kw"))

3)通过样式名className查找 在样式名前加一个.号
driver.findElement(By.cssSelector(".s_ipt"))
driver.findElement(By.cssSelector(".bg s_btn"))

4)根据属性名查找 (标签名[属性名="属性值"])

属性名查找又可以分为单属性或者多属性

单属性       标签名[属性名="属性值"])
driver.findElement(By.cssSelector("input[name='wd']"))

多属性     (标签名[属性名="属性值"] [属性名="属性值"] [属性名="属性值"])
driver.findElement(By.cssSelector("input[name='wd'][class='s_ipt'][maxlength='255']"))

8、xpath 定位
1)xpath绝对路径 -----容易发生变化,不建议使用

就是根据html格式的路径 一 层层找到需要定位的元素

driver.findElement(By.xpath("html/body/div[1]/div[1]/div[1]/div[1]/form/span[1]/input"))

2)相对路径

格式://->相对路径   标签名[@属性名='属性值']
百度输入框查找

标签名不确定时用*                           例一: //*[@name='wd']     #通过下标:  //a[@属性名 and @属性名][1]

标签名确定则用标签名代替               例二: //input[@name='wd']
多属性查找, 用and 连接                 例三: //input[@name='wd'] and [@autocomplete='off']
支持文本定位                                   例四: //a[text()='抗击肺炎']
xpath 部分文本的匹配                      例五: //a[contains(text(),'击肺炎')]
xpath 部分属性的匹配                      例六: //input[contains(@type,'submi')]

3)xpath 轴定位

常用的轴名称主要有父节点parent 、当前节点之前的所有兄弟节点precedling-sibling、当前节点之后的所有兄弟节点following-sibling


轴定位:
# 找子孙后代
//标签[@属性名 ]//标签[@属性名]//标签名[属性名]

# 轴运算
//a[@id='kw']/ancestor::标签名[@属性名]
# 找哥哥姐姐
//标签[@属性名 ]/preceding-sibling::标签名[@属性名]
# 找弟弟妹妹
//标签[@属性名 ]/following-sibling
#找后代
//li[@class='side-menu__item']/descendant::span[text()='基础']

Python +selenium 自动化之元素定位的更多相关文章

  1. selenium自动化之元素定位方法

    在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前ht ...

  2. python ui自动化之元素定位和常用操作

    做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...

  3. Selenium自动化-CSS元素定位

    接下来,开始讲解 CSS元素定位. CSS定位速度快,功能多,但是不能向上查找,比 xpath好用,是本人认为最好用的定位方式   大致用法总结: 具体使用仿上篇博客.http://www.cnblo ...

  4. Python+Selenium 自动化实现实例-定位frame中的元素

    场景 处理frame需要用到2个方法,分别是switch_to_frame(name_or_id_or_frame_element)和switch_to_default_content() 如何理解这 ...

  5. (appium+python)UI自动化_03_元素定位工具

    前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...

  6. Selenium自动化测试之元素定位

    步骤: 1.通过前端工具,查看元素的属性 2.通过属性定位 iddriver.findElement(By.id("kw")) namedriver.findElement(By. ...

  7. Python+Selenium 自动化实现实例-定位一组对象(checkbox,inputs)

    # -*- coding: utf-8 -*- from selenium import webdriver import time import os dr = webdriver.Chrome() ...

  8. Python+Selenium自动化-定位一组元素,单选框、复选框的选中方法

    Python+Selenium自动化-定位一组元素,单选框.复选框的选中方法   之前学习了8种定位单个元素的方法,同时webdriver还提供了8种定位一组元素的方法.唯一区别就是在单词elemen ...

  9. Python+Selenium自动化-定位页面元素的八种方法

    Python+Selenium自动化-定位页面元素的八种方法   本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子. 0.元素定位方法主要有: id定位:find_elemen ...

  10. Python selenium PO By.XPATH定位元素报错

    Python selenium PO  By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[tex ...

随机推荐

  1. 四月十九号java基础知识

    1.总括:类的继承是使用已有的类为基础派生出新的类.通过类继承的方式,便能开发出新的类,而不需要编写相同的程序代码,所以说类的继承是程序代码再利用的概念抽象与接口都是类概念的扩展.通过继承扩展出的子类 ...

  2. windows安装zabbix错误代码

    zabbix安装:windows安装zabbix客户端很多坑,设计到很多问题,常见的问题有安装完成防火墙没有关闭,zabbix服务端接收不到客户端的信息.zabbix在cmd中安装的时候报错误代码,安 ...

  3. Semantic Kernel 入门系列:🍋Connector连接器

    当我们使用Native Function的时候,除了处理一些基本的逻辑操作之外,更多的还是需要进行外部数据源和服务的对接,要么是获取相关的数据,要么是保存输出结果.这一过程在Semantic Kern ...

  4. Auto-GPT测评:自信、努力、不合格

    这两天,Auto-GPT 爆火 https://github.com/Torantulino/Auto-GPT 它是一款让最强语言模型GPT-4能够自主完成任务的模型,让整个AI圈疯了.它的嘴大突破是 ...

  5. Linux进程管理(命令)入门

    进程是一个运行中的程序 进程查看 ps 能够查看当前终端下运行的进程 $ ps PID TTY TIME CMD 26305 pts/0 00:00:00 bash 26312 pts/0 00:00 ...

  6. 小知识:使用oracle用户查看RAC集群资源状态

    正常情况按照标准配置的环境变量,只能grid用户查看RAC集群资源状态. crsctl stat res -t 但是绝大部分操作其实都是oracle用户来操作,比如启停数据库,操作完成以后就需要检查下 ...

  7. SPN在域环境的应用

    windows域为了集中资源,有效地对资源访问控制权限进行细粒度分配,提高网络资源统一分配的管理.域内的每种资源分配了不同的服务主体名称(SERVICE Pricipal Name,SPN) 相关概念 ...

  8. map和multimap

    map相对于set区别,map具有键值和实值,所有元素根据键值自动排序,pair的第一个值被称为键值key,pair的第二个值被称为实值value.map也是以红黑树为底层实现机制,根据key进行排序 ...

  9. #Powerbi 季度时间进度计算

    上一篇我们学习了月度时间进度的计算方法,今天我们学习季度时间进度的测算. 思路:找出目前共计消耗了多少天(季度),目前日期所在的季度共有多少天,两者相除即是季度的时间进度 首先列出DAX函数:   本 ...

  10. pytest插件开发

    插件的加载方式 外部插件: pip install 安装的插件 本地插件: pytest 自动模块发现机制(conftest.py存放) 内置插件: 代码内部的_pytest目录加载 什么是hook ...