Selenium-几种元素定位方式
#识别元素并操作
#一般有如下几种方法,其中id最为常用.这里需要注意识别元素一定要用唯一id
1.find_element_by_id("value")
- #! /usr/bin/env python
- #coding=utf-8
- from selenium import webdriver
- import time
- url = "http://www.baidu.com"
- driver = webdriver.Firefox()
- driver.get(url)
- time.sleep(5)
- driver.find_element_by_id("kw").send_keys("博客园")
- #模拟表单的提交按钮操作,新版百度搜索不需要这个了,他会自动搜索,再次看出ui的维护成本很高
- #driver.find_element_by_id("kw").submit()
2.find_element_by_name("value")
- #driver.find_element_by_name("wd").send_keys("博客园")
3.find_element_by_class_name("value")
- #driver.find_element_by_class_name("s_ipt").send_keys("博客园")
4.find_element_by_link_text("value')
- driver.get(url)
- driver.find_element_by_link_text("新闻").click()
- time.sleep(5)
- #对于超级连接比较长的可以尝试采用下面的方法,类似一种模糊匹配
- driver.find_element_by_partial_link_text("首页").click()
- time.sleep(5)
5.#xpath神器,理论上来说,没有path定位不到的元素
#这里使用firepath查看
#xpath你理解为树形结构就OK,我们也可以通过类似上下级的关系来一层层定位
- #! /usr/bin/env python
- #coding=utf-8
- from selenium import webdriver
- import time
- url = "http://www.baidu.com"
- driver = webdriver.Firef
- driver.get(url)
- driver.find_element_by_xpath(".//*[@id='kw']").send_keys("博客园")
- #driver.find_element_by_id("su").submit()
- time.sleep(5)
- driver.find_element_by_id("kw").clear()
- time.sleep(5)
- #返回
- driver.back()
- time.sleep(5)
- #! /usr/bin/env python
- #coding=utf-8
- from selenium import webdriver
- import time
- url = "http://www.baidu.com"
- driver = webdriver.Firef
- driver.get(url)
- driver.find_element_by_xpath(".//*[@id='kw']").send_keys("博客园")
- #driver.find_element_by_id("su").submit()
- time.sleep(5)
- driver.find_element_by_id("kw").clear()
- time.sleep(5)
- #返回
- driver.back()
- time.sleep(5)
6.利用两个元素属性进行唯一定位 and or,只适用于xpath
- driver.find_element_by_xpath(".//*[@id='kw' and @name='wd']").send_keys("博客园")
- time.sleep(5)
7.#当父类有多个一样的子类的时候,可以通过下标来定位,从1开始
#以搜索设置里的结果显示条数为例
- driver.get("http://www.baidu.com/gaoji/preferences.html")
- time.sleep(5)
- #driver.find_element_by_xpath(".//*[@id='nr']/option[3]").click()
- #除此之外还可以怎么定位?
- driver.find_element_by_xpath(".//option[@value='50']").click()
- time.sleep(5)
举例:
解释:
#通过id='nr'值的select元素,找到第三个input子元素
#driver.find_element_by_xpath(".//*[@id='nr']/option[3]").click()
#通过属性名为value且值为50的第三个option元素
driver.find_element_by_xpath(".//option[@value='50']").click()
Selenium-几种元素定位方式的更多相关文章
- 【python+selenium的web自动化】- 8种元素定位方式详解
我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. 说明:以下操作统 ...
- Java + Selenium + WebDriver八大元素定位方式
UI自动化测试的第一步就是进行元素定位,下面给大家介绍一下Selenium + WebDriver的八大元素定位方式.现在我们就以百度搜索框为例进行元素定位,如下图: 一.By.name() Java ...
- 1、selenium 8大元素定位方式
元素定位方式: id name css class_name tag_name partial_link link_text : driver. find_element_by_link_text(& ...
- Selenium系列(一) - 8种元素定位方式的详细解读
安装Selenium和下载Driver 安装selenium pip3 install selenium -i http://pypi.douban.com/simple --trusted-hos ...
- Selenium 八种元素定位方法
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...
- Selenium八种元素定位方法源码阅读
接触过Selenium的都知道元素定位有八种方法,但用不同的方法在执行时有什么区别呢? 元素定位8种方法(Python版),当然还有每一个方法对应的find_elements方法 find_eleme ...
- Appium常用的3种元素定位方式
以最右App为例 .apk文件网盘地址: 链接:https://pan.baidu.com/s/1L4MYkhpb5ECe8XeaneTx_Q 提取码:0jqm 1.find_element_by_i ...
- Selenium八种基本定位方式---基于python
from selenium import webdriver driver=webdriver.Firefox() driver.get("https://www.baidu.com&qu ...
- Selenium2学习-009-WebUI自动化实战实例-007-Selenium 8种元素定位实战实例源代码(百度首页搜索录入框及登录链接)
此 文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,通过 ID.name.xpath.cssSelector.linkText.className.partialLinkTe ...
随机推荐
- k8s调度-指定node
1.给node加标签 kubectl label nodes k8s-slave2 slave= 2.查看标签 [root@k8s_master centos7]# kubectl describe ...
- 使用MongoDB 记录业务日志
最近公司有个需求,要对业务日志进行记录并根据日志排查问题,以前都是使用log4net之类的日志组件来记录到文件,这种方式已经不能满足业务的需要,因为日志文件会很大,即使进行分割后,查找也是很不方便,何 ...
- flex hack 记录
IE从IE10开始. //共通 display: flex; flex-direction: column; align-items: flex-start;justify-content: cent ...
- 九度OJ 1201:二叉排序树 (二叉树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4894 解决:2062 题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历. 输入: 输入第一行包括一个整数n(1< ...
- ElasticSearch(十八)初识分词器
1.什么是分词器 作用:切分词语,normalization(提升recall召回率),如给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换 ...
- PAT 1063. 计算谱半径(20)
在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界.换言之,对于给定的n个复数空间的特征值{a1+b1i, ..., an+bni},它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模. ...
- node-sass 安装失败的解决措施[转]
转自:http://blog.csdn.net/nzb329/article/details/51935236 在编译一个项目的时候,一直报错 后来发现是因为node-sass没有装成功, 最终的解决 ...
- JVM调优-工具篇
原文地址 16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化.工具做为图形化界面来展示更能直观的发现问题,另一 ...
- matlab + c/c++ opencv 混合编程
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 辛苦原创所得,转载请注明出处 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- python webserver客户端
1.库 suds库,只能做webserver客户端,轻量化,使用方便.安装使用pip. 2.使用 如有webserver情况如下: url:http://10.110.35.41:8980/wsser ...