selenium 动态元素的定位

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

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

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

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

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

contains()   属性内容包含

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

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

原文地址:https://www.cnblogs.com/wulinmiao/p/11478438.html

时间: 2024-10-09 05:07:34

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

selenium之元素的定位

   1.id定位:find_element_by_id(self, id_)    通过唯一的id来定位 # coding : uft-8 from selenium import webdriverdriver = webdriver.Firefox()url = "https://baidu.com"driver.get(url)#打印一下title,确认我们打开的对不对print(driver.title)# 选中输入框,输入关键词"杭州天气"driver.

Selenium 特殊元素的定位与操作

Web页面有很多特殊的元素  无法使用基本的元素定位方式定位,下面介绍几个特殊的元素定位 1.alert框 alert框只有一个确认按钮 BrowserUtil.driver.findElement(By.id("abtn")).click(); Thread.sleep(3000); Alert alert = BrowserUtil.driver.switchTo().alert(); alert.accept(); //点击确认按钮 alert.dismiss();//弹框消失

selenium对元素定位和操作方法的封装

前面介绍了selenium对元素的定位方法和操作方法,但是因为这些方法用起来重复的次数比较多,所以我们在下面对他们进行一个封装 # -*- coding:UTF-8 -*- from selenium import webdriver import time class common(object): #新建对象就自动创建浏览器并且最大化窗口 def __init__(self): self.driver=webdriver.Chrome() self.driver.maximize_windo

selenium之元素定位-css

CSS定位方式和XPATH定位方式基本相同,只是CSS定位表达式有其自己的格式.CSS定位方式拥有比XPATH定位速度快,且比XPATH稳定的特性.下面详细介绍CSS定位方式的使用方法 被测网页的HTML代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style type="text/css"> input.spread { Font-SIZ

Web自动化测试 四 ----- python selenium 八大元素定位

python selenium 八大元素定位方法 前提条件:先要引入webdriver模块,创建一个Chrom浏览器对象,以及打开一个网页(以百度为例). 1 from selenium import webdriver 2 3 driver = webdriver.Chrome() 4 5 driver.get('http://www.baidu.com') 一.ID定位 driver.find_element_by_id('kw') 备注: 此方法相当于JS中的getElementById(

Selenium Webdriver元素定位的八种常用方式

在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><

selenium中元素定位的常用方法

一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单,通过id一般可以得到一个唯一的定位,其他五种要注意元素是否唯一,如果有多个,返回的是匹配的第一个元素.下面详细讲解一下xpath和cssSelector定位. 二.xpath定位 1.通过绝对路径定位 dr.findElement(By.xpath("/html/body/div[2]/div/di

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

自动化测试中经常会出现无法定位元素的情况,报selenium.common.exceptions.NoSuchElementException错误 Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果iframe有name或id的话,直接使用switch_to_frame("name值"

Selenium Webdriver元素定位的方式

Selenium Webdriver元素定位的方式 主要就是By类的 1.By.name() ## html代码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><span id="gbqfsa">Google Search</span></button>