对于有些元素每次点击都是动态的  即每次都是不一样的  对于这种元素我们可以采用与他相关的其他静态的元素定位

比如 iframe 这个元素的id是动态的 每次都在变化

第一种就是我们观察下 是整个都是变化的还是部分变化  部分变化我们可以采用不变的部分定位 整个都在变化的 只能利用其它不变的元素

例如  通过xpath来定位  drive.find...xpath("//iframe[starts-with(@x,'y')]")  x是不变的元素属性 y则是属性的内容  这里采用以什么开头

starts-with()  属性内容以什么为开头

contains()   属性内容包含

ends-with()   属性内容以什么结尾

第二种就是定位到该元素的父节点子节点或者同等级节点 在进行定位  比如先定位到同级元素  在定位到其父节点  在定位子节点 即要定位的节点元素

selenium 动态元素的定位的更多相关文章

  1. selenium中的webdriver定位元素失败的常见原因

    自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最 ...

  2. selenium之元素定位-css

    CSS定位方式和XPATH定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比XPATH定位速度快,且比XPATH稳定的特性.下面详细介绍CSS定位方式的使用方法 被测网页的HT ...

  3. python selenium ——— 动态id、class定位

    什么样的是动态id呢? 动态id就是第一次点击显示的id与二次点击显示的不一样,一般是元素属性中包含一段数字的这种情况. 类似这种: 1 <input type="button&quo ...

  4. python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)

    今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...

  5. Selenium Web元素定位方法

    Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...

  6. python+selenium+bs4爬取百度文库内文字 && selenium 元素可以定位到,但是无法点击问题 && pycharm多行缩进、左移

    先说一下可能用到的一些python知识 一.python中使用的是unicode编码, 而日常文本使用各类编码如:gbk utf-8 等等所以使用python进行文字读写操作时候经常会出现各种错误, ...

  7. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  8. 《手把手教你》系列技巧篇(十一)-java+ selenium自动化测试-元素定位大法之By tag name(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍By ClassName.看到ID,NAME这些方法的讲解,小伙伴们和童鞋们应该知道,要做好Web自动化测试,最好是需要了 ...

  9. 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

随机推荐

  1. OsharpNS轻量级.net core快速开发框架简明入门教程-切换数据库(从SqlServer改为MySql)

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  2. idea创建maven多模块Spring Boot项目

    1, 创建父项目 1.1,file - new - project 1.2,选择maven,Create from archetype(有的说不选,有的没说,不过我建父项目的时候没有勾选) 1.3,根 ...

  3. cefsharp参考笔记

    https://blog.csdn.net/yh0503/article/details/86678115 https://blog.csdn.net/qq_17351077/article/deta ...

  4. SQLserver 存储过程游标使用

    ALTER PROCEDURE [dbo].[p_DeleteStretchData] ) , ) AS BEGIN ) ) declare @stretch_cursor cursor -- 声明游 ...

  5. Git基础-第2章

    简单的Git基础概念: repository: 仓库 track:  跟踪 stage: 暂存 commit:    提交 push:        推送 pull:    拉取 一.获取Git仓库 ...

  6. defaults(默认配置)和mergeConfig(合并config方法)

    axios学习笔记defaults(默认配置)和mergeConfig(合并config方法) 源码地址 找到入口文件 axios/lib/axios.js ... var mergeConfig = ...

  7. Mono 下的 ASP.NET 可以运行在哪些 Web 服务器上?

    Mono has an implementation of ASP.NET 2.0, ASP.NET MVC and ASP.NET AJAX. Quick Resources: ASP.NET FA ...

  8. Java Base64Utils ----Utils

    Java Base64Utils   目录   Java Base64Utils 7 /**  * <html>  * <body>  *  <P> Copyrig ...

  9. 如何写出优雅的 Golang 代码

    原文: https://draveness.me/golang-101.html Go 语言是一门简单.易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的 ...

  10. centOs6和Centos7开放/关闭端口区别

    #centos6启动防火墙 service iptables start #centos6停止防火墙/关闭防火墙  service iptables stop #centos6重启防火墙 servic ...