Selenium元素定位问题

定位元素时,遇到一些诡异事件:

  明明就是通过ID定位的,但是就是没有定位到该元素呢?

      1.通过element.find_elements_by_xxx()获取该元素的个数,试试是否有获取到元素,0个表示没有获取到元素,大于1时,表示获取的元素不唯一

      2.显式等待,隐式等待。强制等待要合理利用,需要判断元素是否可见,是否可点击

      3.可以element.get_attribute(‘href‘)打印出元素所有属性,查看是不是自己想要的那一个      

element = driver.find_elements_by_xpath(‘a‘)
for i in range(len(element)):
    element.get_attribute(‘href‘)
    element.get_attribute(‘type‘)

  

原文地址:https://www.cnblogs.com/nieliangcai/p/10316050.html

时间: 2024-10-10 07:01:59

Selenium元素定位问题的相关文章

Selenium元素定位学习教程

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就一起学习Selenium以及它是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver和 WebEle

【Python】Selenium元素定位错误之解决办法

当使用class定位元素时发现报错: 错误信息:selenium.common.exceptions.InvalidSelectorException: Message: Compound class names not permitted(复合类的名称不允许) 网上查询资料得知: className不允许使用复合类名做参数[原文] 真实环境中元素往往使用复合类名(即多个class用空格分隔),使用className定位时要注意了,className的参数只能是一个class. 例如图中显示的c

selenium元素定位不到的解决方式

1.如果确信自己的元素的地址写的事正常的,但是就是没有反应的话可以试试切换Frame下 代码为: driver.switch_to.frame("mainFrame") 用完之后记得切换回原来的 driver.switch_to.default_content() 2.对xpath 和css元素定位不是很清楚的话,可以使用的firefox的工具,selenium IDE,通过脚本录制在导出,查看脚本文件,可以很快定位到元素的位置 3.有些元素在打开文件之后,需要一定的等待时间,可以加上

selenium元素定位大全

要做自动化,首先要了解页面结构,要了解页面结构,就要了解页面元素的定位方法 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素. 常用的元素定位方法如下: 如何选择 定位方法 策略是:选择简单,稳定的定位方法. 1. 当页面元素有id属性的时候, 尽量使用id来定位. 没有的话,再选择其他定位方法 2. cssSelector 执行速度快, 推荐使用 3. 定位超链接的时候,可以考虑linkTe

python selenium 元素定位(三)

上两篇的博文中介绍了python selenium的环境搭建和编写的第一个自动化测试脚本,从第二篇的例子中看出来再做UI级别的自动化测试的时候,有一个至关重要的因素,那就是元素的定位,只有从页面上找到这个元素,我们从能对这个元素进行操作,那么我们下来看看如何来定位元素. selenium 提供了8中元素定位的方法(大家要学习元素的定位,首先可以学习下前端的基础知识,这样有利于我们学习自动化测试,大家可以看一下:http://www.runoob.com/) find_element_by_id

Selenium 元素定位

selenium通过driver.findElement(By selector)来定位元素,selector在selenium-java.jar中,里面的方法一共就8种,如下图: 下面提供了一些常见的方法:获取元素.判断元素是否存在.点击button.填写文本.等待事件 1 import org.openqa.selenium.By; 2 import org.openqa.selenium.NoSuchElementException; 3 import org.openqa.seleniu

学习总结——Selenium元素定位

读一本好书,不能读读就算了,做一下总结,变成自己的,以备查阅. 1.         driver.findElement(By.id(<element ID>)) ID是独一无二的,使用ID定位是最为推荐的方法. 但是:1.不是所有元素都会指定ID:2.有的ID属性的值是动态生成的. 2.         driver.findElement(By.name(<element name>)) name属性不一定唯一,如果有多个,第一个出现的会被选择. 3.         dri

python selenium 元素操作之键盘操作(五)

上节介绍了模拟鼠标对元素的操作,本节主要介绍键盘对元素的操作,实际过程中鼠标对元素的操作比键盘对元素的操作更经常使用,但是键盘对元素的操作也很重要,本节主要介绍一下键盘对元素的操作. selenium 提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要我们导入from selenium.webdriver.common.keys import Keys即可,然后就可以来模拟键盘操作. #导入Keys 模块,然后我们看看Keys 模块定义了那些按键 from selenium.webdrive

selenium元素定位

1.元素定位 在本章中,我们将讨论 u 使用浏览器工具来检查页面中元素的结构 u 使用findElement方法定位元素 u 使用findElements方法来定位元素 u 定位链接 u 通过标签名称定位元素 u 使用CSS选择器定位元素 u 使用XPath定位元素 u 使用文本定位元素 u 使用高级CSS选择器定位元素 u 使用jQuery选择器 u 定位表格的行和列 u 定位表格中的子元素 1.1.介绍 成功的自动化GUI(图形用户界面)测试取决于从被测试的应用程序中识别和定位GUI元素,然