selenium python (七)层级定位(二次定位)

#!/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>

时间: 2024-07-28 13:36:29

selenium python (七)层级定位(二次定位)的相关文章

selenium+python自动化95-弹出框死活定位不到

前言 部分小伙伴学了selenium的alert后,就不管啥弹出框都去用alert,这是行不通的,看到弹出框,先要确定是不是alert,是才能用,不是的话肯定不能用. 有些弹出框是div层,这种跟平常定位方法一样 有些弹出框是嵌套的iframe层,这种切换iframe就可以了 有些弹出框比较坑,是嵌入的一个窗口,这就是本篇要讲的内容了. 遇到问题 1.最近有小伙伴遇到一个弹出框的定位,如下图这种,看似普通的一个弹出框 2.遇到这个问题做了以下尝试: 首先,这种肯定不是alert,所以不能用ale

selenium + Python (2) -- 常用8种元素定位

selenium常用的8种元素定位方式如下(代码可直接运行): # coding:utf-8 # 第一步导入需要的模块 from selenium import webdriver import time # 第二步打开浏览器 driver = webdriver.Firefox() # 第三步打开百度 driver.get("http://www.baidu.com") # 1. 操作浏览器对象-id driver.find_element_by_id("kw")

selenium+python自动化之xpath定位

在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. 什么是xpath呢?官方介绍:XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.反正小编看这个介绍是云里雾里的,通俗一点讲就是通过元素的路径来查找到这个元素的,相当于通过定位一个对象的坐标,来找到这个对象. 一. xpath:属性定位 xptah也可以通

Selenium+Python自动化测试实战(2)元素定位

1.Selenium2 的原理 第一篇分享简单介绍了基于Python开发的Selenium2的环境配置,这篇主要讲一下基本用法.首先讲一下Selenium2的基本原理.基本上知道了这个东西是怎么回事,我们就知道怎么去用它做自动化测试. 与Selenium和Selenium RC不同,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样.其实刚

selenium+python之元素定位方式介绍

网页自动化测试最基本的要求就是要定位到各个元素,然后才能对该元素进行各种操作(输入,点击,清除,提交等),所以今天来总结下Selenuim+Python最基本的几种定位方式及实例说明, 以百度搜索输入框为例,用谷歌浏览器具体说明各个定位方式的用法. 1.导入selenium包的webdriver方法 输入 from selenium import webdriver 2.从 time 模块中引入sleep函数,使用sleep函数可以让程序休眠 输入 from time import sleep

selenium+Python之select定位

一.二次定位 基本思路,先定位select框,再定位select里的选项 二.通过Select模块定位 导入:from selenium.webdriver.support.select import Select 定位方法: select_by_index()  :通过索引定位select_by_value()  :通过value值定位select_by_visible_text() :通过文本值定位deselect_all()          :取消所有选项deselect_by_inde

selenium + python自动化测试unittest框架学习(三)webdriver元素定位(一)

1.Webdriver原理 webdirver是一款web自动化操作工具,为浏览器提供统一的webdriver接口,由client也就是我们的测试脚本提交请求,remote server浏览器进行响应请求,相对于原来selenium1中的selenium rc更加的简便,对浏览器的操作更加灵活. 2.定位 (1)元素的定位: 元素的定位可以通过id,name,class name,tag name,link_text,partial_link_text,css selector,xpath等 语

selenium+python定位方式

今天记录的是selenium+python的定位方式简介,它的定位方式一般有几种类型:idnameclass link textxpathtagcss大部分常用的够了,还有几种如果用到再补充吧. 定位元素:可以通过by来声明定位的方法,传入对应定位方法是定位参数,例如: find_element_by_id("kw")其他定位方式都类似,只需要更换定位方式和参数即可. 原文地址:http://blog.51cto.com/10917781/2107600

appium+python搭建自动化测试框架_Appium元素定位(二)

1. id定位: self.driver.find_element_by_id('com.tencent.mobileqq:id/btn_login').click() 2. class定位: self.driver.find_element_by_class_name('android.widget.Button').click() (注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了) 3. 相对定位: 相对定位是先找到该元素的有对应属性的父元素节点,然后基于父元素进行元素

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

1.通过selenium.webdriver.support.ui的Select进行定位 下拉菜单如下图: 定位代码(选择Male): ...from selenium.webdriver.support.ui import Select...    # 通过index进行选择    Select(driver.find_element_by_id("gender")).select_by_index(1)    # 通过value进行选择    Select(driver.find_