#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'zuoanvip'

#在实际测试过程中,一个页面可能有多个属性基本相同的元素,如果要定位到其中的一个,这时候需要用到层级定位。先定位到父元素,然后再通过父元素定位子孙元素

#导入包
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import  time
import os

driver = webdriver.Firefox()
#checkbox.html 要和脚本文件放一个目录下,否则需要指定checkbox.html的路径
file_path = 'file:///'+os.path.abspath('level_locate.html')
driver.get(file_path)

#首先定位到Link1链接(弹出下拉列表)
driver.find_element_by_id('xx').click()

#在父元素下找到link为Action的子元素
sub_element = driver.find_element_by_id('xx').find_element_by_link_text('Another_action')

#将鼠标移动到子元素上
ActionChains(driver).move_to_element(sub_element).perform()
time.sleep()

======================================================================================

level_locate页面源代码:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Level Locate</title>
<script type="text/javascript" async="
" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"
rel="stylesheet" />
</head>
<body>
<h3>Level locate</h3>
<div class="span3">
<div class="well">
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Link1</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" id="dropdown1" >
<li><a tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
</div>
</div>
<div class="span3">
<div class="well">
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Link2</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" >
<li><a tabindex="-1" href="#">Action</a></li>
<li><a tabindex="-1" href="#">Another action</a></li>
<li><a tabindex="-1" href="#">Something else here</a></li>
<li class="divider"></li>
<li><a tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
</div>
</div>
</body>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</html>

转载于:https://www.cnblogs.com/dvbbs2012/p/5022626.html

selenium python (七)层级定位(二次定位)相关推荐

  1. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. 【UWB 定位】高精度定位

    室内定位--UWB测距及定位原理 我们都知道卫星信号在室内会被严重的影响,从而导致GPS或是北斗无法发定位.所以在室内定位主要采用无线通讯.基站定位.惯导定位等多种技术集成形成一套室内位置定位体系,从 ...

  3. selenium python 一些操作和定位收集

    (-)滚动条操作 python中selenium操作下拉滚动条方法汇总 selenium_webdriver(python)控制浏览器滚动条 selenium+Python(select定位) Sel ...

  4. Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解

    简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个 ...

  5. Selenium+Python如何定位鼠标悬停的元素

    Selenium+Python如何定位鼠标悬停的元素? 下面以登录百度后,鼠标悬停在个人中心,点击[退出登录]为例. Selenium+Python如何定位鼠标悬停的元素? 一.环境 二.代码 三.定 ...

  6. selenium+python,解决selenium弹出新页面,无法定位元素的问题(报错:Unable to locate element:元素)

    selenium+python,解决selenium弹出新页面,无法定位元素的问题(报错:Unable to locate element:元素) 参考文章: (1)selenium+python,解 ...

  7. python定位相邻节点_Python selenium 父子、兄弟、相邻节点定位方式详解

    今天跟大家分享下selenium中根据父子.兄弟.相邻节点定位的方法,很多人在实际应用中会遇到想定位的节点无法直接定位,需要通过附近节点来相对定位的问题,但从父节点定位子节点容易,从子节点定位父节点. ...

  8. selenium+python:元素定位的八种方式

    id,name,class_name(这三种是元素的属性,而selenium单独针对这三种属性提供了对应的定位方法) tag_name(这个针对标签名称定位) link_text,partial_li ...

  9. Appium+python自动化(十)- 元素定位秘籍助你打通任督二脉 - 上卷(超详解)

    简介 你有道灵光从天灵盖喷出来你知道吗,年纪轻轻就有一身横练的筋骨,简直百年一见的练武奇才啊,如果有一天让你打通任督二脉,那还不飞龙上天啊.正所谓我不入地狱谁入地狱,警恶惩奸维护世界和平这个任务就交个 ...

  10. python自动测试u_自动化测试——Selenium+Python之下拉菜单的定位

    1.通过selenium.webdriver.support.ui的Select进行定位 下拉菜单如下图: 定位代码(选择Male): from selenium.webdriver.support. ...

最新文章

  1. 折线分割平面(hdoj 2050,动态规划递推)
  2. 利用 RDA5807的RSSI测量RF强度
  3. 狗蛋(驱动小白)和老王(硬件老司机)关于硬件那点事儿的一次密谈
  4. mysql 并发_mysql如何处理高并发
  5. 2020Alibaba数学竞赛决赛试题
  6. 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例
  7. php设置页面最小高度,HTML_CSS布局中最小高度的妙用,最小高度可以设定一个BOX的最 - phpStudy...
  8. 因未交赎金,世界航天巨头机密文档遭勒索软件公开
  9. aop日志(记录方法调用日志)
  10. android gps导航省电,具有省电功能的gps导航系统及其省电方法
  11. 安全事件应急响应工具箱
  12. Netron 可视化Pytorh模型架构
  13. 300行python代码从零开始构建基于知识图谱的电影问答系统4-用户问题预处理
  14. 弘辽科技:如何制定淘宝店铺推广计划?店铺推广包含哪些方面?
  15. 数仓实时数据同步 debezium
  16. 智能纪元,简述NVIDIA的伟大航路
  17. mybatis-plus打印sql日志和参数到日志文件
  18. python 输出图像尺寸_Opencv-Python:图像尺寸、图像的读取、显示、保存与复制
  19. Linux使用aircrack-ng破解WIFI(wpa/wpa2)密码
  20. 台式计算机无法启动不了,台式机和笔记本电脑主机启动不了常见原因解决方法...

热门文章

  1. Android数据存储——2.文件存储_C_DOM解析XML文档
  2. 论文阅读:DENSELY CONNECTED CONVOLUTIONAL NETWORKS
  3. 【数据挖掘知识点六】假设检验
  4. 算法导论之NP完全性和近似算法
  5. (转载)java工程师15本必读书籍推荐
  6. Ethernet/IP 学习笔记四
  7. 数据结构源码笔记(C语言):栈的基本操作
  8. 使用GPIO模拟I2C总线进行通信
  9. JavaScript 技术篇 - js在一个元素节点下包含多个text文本情况下的指定文本提取方法
  10. Python 技术篇-基于随机数的uuid码的生成