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 ...
随机推荐
- gen_server2 与gen_server的对比
在erlang杀手级应用rabbitmq中,不难发现,有一个gen_server2.erl模块.而在rabbitmq中,gen_server2.erl是对gen_server.erl模块的重写. Ra ...
- 使用Office 365前,企业必须要知道的10件事
目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装 ...
- jqury 如何获取 kindeditor 中textarea 的值
获取文本内容,可是的创建时怎么也不能获取,利用FF的firebug查看到自己所写的内容在一个iframe中,于是想从iframe中获取文本,想要用 $(“ifame”).html();获取内容,可是依 ...
- jquery实现全选、全消、反选功能
HTML代码: <input type="checkbox" name="checkbox" class="A" /> 使用按钮 ...
- Java是否存在内存泄露
会的. 原因:长生命周期的对象持有短生命周期对象的引用,导致短生命周期对象不能被回收,由此可能发生内存泄露. 举例参考:http://blog.csdn.net/yakihappy/article/d ...
- HTTP/HLS/RTMP超级负载测试工具(转)
这个负载测试工具是网游分享的工具,可以在http://blog.csdn.net/win_lin/article/details/11835011 或者https://github.com/winli ...
- DELL inspiron1420 linux下的wifi驱动安装
首先确定无线网卡类型: lspci -vnn -d 14e4: 比如我的网卡类型为 04:00.0 Network controller [0280]:Broadcom Corporation BCM ...
- 【BZOJ3769】spoj 8549 BST again DP(记忆化搜索?)
[BZOJ3769]spoj 8549 BST again Description 求有多少棵大小为n的深度为h的二叉树.(树根深度为0:左右子树有别:答案对1000000007取模) Input 第 ...
- gIt 常用 操作
git提交代码流程git status -- 查看当前仓库状态git add -- 添加到临时仓库git commit -m '注释' -- 添加到临时仓库git status -- 查看当前仓库 ...
- SVM vs. Softmax
http://cs231n.github.io/linear-classify/