Selenium学习笔记之010:层级定位
来源:互联网 发布:网络电视调试 编辑:程序博客网 时间:2024/06/04 01:17
一、场景:
假如两个控件,他们长的一模样,还都叫“张三”,唯一的不同是一个在北京,一个在上海,那我们就可以通过,他们的城市,区,街道,来找到他们。
在实际的测试中也经常会遇到这种问题:页面上有很多个属性基本相同的元素,现在需要具体定位到其中的一个。由于属性基本相当,所以在定位的时候会有些麻烦,这时候就需要用到层级定位。先定位父元素,然后再通过父元素定位子孙元素。
二、实例
下图自制了一个页面,上面有两个文字链接,点击两个链接会弹出一模一样的的两个下拉菜单,这两个菜单的属性基本一样。那么我如何区分找到相应的菜单项呢?
定位思路:
具体思路是:先点击显示出1个下拉菜单,然后再定位到该下拉菜单所在的ul,再定位这个ul下的某个具体的link。在这里,我们定位第1个下拉菜单中的Action这个选项。
方法如下:# -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitimport timeimport osdr = webdriver.Firefox()file_path = 'file:///' + os.path.abspath('level_locate.html')dr.get(file_path)#点击Link1链接(弹出下拉列表)dr.find_element_by_link_text('Link1').click()#找到id 为dropdown1的父元素WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('dropdown1').is_displayed())#在父亲元件下找到link为Action的子元素menu = dr.find_element_by_id('dropdown1').find_element_by_link_text('Action')#鼠标定位到子元素上webdriver.ActionChains(dr).move_to_element(menu).perform()time.sleep(2)dr.quit()
本文部分参考虫师webdriver文档。
0 0
- Selenium学习笔记之010:层级定位
- Selenium学习笔记之007:定位一组元素
- Selenium学习笔记之008:多层frame或者windows定位
- webdriver_定位之层级定位
- Selenium学习笔记2--定位元素
- selenium 网页元素定位方法学习笔记
- jQuery之层级选择器学习笔记
- Selenium学习笔记之006:webdriver的八种定位方式
- Webdriver学习笔记(五)页面元素定位补充(list和层级定位)
- Selenium学习笔记之二
- Selenium学习笔记之三
- 轻松自动化---selenium-webdriver(python) (五)---层级定位
- selenium之元素定位
- selenium之CSS定位
- Selenium webdriver 学习笔记(二) - UI Element定位
- Python Selenium 学习笔记(二)定位元素
- 【selenium学习笔记】webdriver进行页面元素定位
- 【Selenium学习笔记】webdriver如何定位一组对象
- Python进阶---python assert用法
- Java 调用 自定义函数SQL
- 运算符笔记
- 机器学习中的数学(1):回归、梯度下降
- This Handler class should be static or leaks might occur Android警告处理
- Selenium学习笔记之010:层级定位
- Python进阶---python pass用法
- Rotate Array
- java中获取另一个线程中的信息
- 机器学习中的数学(2):线性回归、偏差、方差权衡
- QListWidget常用方法
- 最全前端面试问题及答案总结 - trigkit4
- Android中的动态加载机制
- Centos7更改yum源步骤(转)