Selenium入门系列3 单个元素的定位方法
UI自动化首先要识别对象,再操作对象,最后判定实际结果与预期结果是否一致。
这一节学习的是识别单个对象,webdriver提供了8种方式。

<a id="idofa" class="classofa" name="nameofa" href="">linktextofa</a>
find_element_by_class_name( 'classofa') 根据class定位
find_element_by_id("idofa") 根据id定位(代码规范的话,id是唯一的。注意的点在于有时候开发会动态改变id)
find_element_by_name("nameofa") 根据name定位
find_element_by_tag_name("a") 根据tag定位
find_element_by_link_text('linktextofa') 链接文本
find_element_by_partial_link_text("link") 链接部分文本
find_element_by_css_selector 最好用的,需熟悉css选择器。css改变元素样式首先就得选择元素,选择器有标签、id、class、属性、组合、父子、后代、兄弟等等,超级强大。
css 选择器 http://www.w3school.com.cn/cssref/css_selectors.asp
find_element_by_css_selector("a") 标签
find_element_by_css_selector("#idofa") #id
find_element_by_css_selector(".classofa") .class
find_element_by_css_selector("a#idofa") 标签#id
find_element_by_css_selector("a.classofa") 标签.class
find_element_by_css_selector('a[name=''nameofa"') 标签[属性]
......
find_element_by_xpath('//a[@id="idofa"]') 也很强大。css_selector不好使的时候用,据说比css_selector慢
xpath http://www.w3school.com.cn/xpath/xpath_nodes.asp
#coding=utf-8 #单个对象的识别webdriver提供了8种方式
#find_element_by_id,name,class_name,tag_name,css_selector,link_text,partial_link_text,xpath from selenium import webdriver
import time driver = webdriver.Firefox() driver.get("http://www.bing.com")
driver.find_element_by_id("sb_form_q").send_keys("byid ")
time.sleep(1)
driver.find_element_by_name("q").send_keys("byname ")
time.sleep(1)
driver.find_element_by_class_name("b_searchbox").send_keys("byclassname ")
time.sleep(1)
driver.find_element_by_tag_name("input").send_keys("bytagname ")
time.sleep(1)
driver.find_element_by_css_selector("input#sb_form_q").send_keys("bycssselector ")
time.sleep(1)
driver.find_element_by_xpath("//input[@class='b_searchbox']").send_keys(" byxpath")
time.sleep(1) driver.get("http://www.bing.com")
driver.find_element_by_link_text("Academic").click()
time.sleep(2)
driver.get("http://www.bing.com")
driver.find_element_by_partial_link_text("Office").click()
time.sleep(2)
driver.quit()
Selenium入门系列3 单个元素的定位方法的更多相关文章
- Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>
前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...
- Maven入门系列(二)--设置中央仓库的方法
原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...
- Selenium入门系列4 选择并操作一组元素
选中一组元素的方式也是8种,与选中单个元素一一对应.区别只在于element与elements.elements取到的是一个数组,element取符合条件的第一个元素. 首先在脚本的目录下新建test ...
- 02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 1.结构元素 可以理解为语义话标记,比如:以前这么写&l ...
- 03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 2.功能元素 1.hgroup 对网页或区段(secti ...
- selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)
跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...
- UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)
Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...
- sellenium页面元素的定位方法
1.findElements函数可用于多个元素定位 (1)使用ID定位:driver.findElement(By.id("ID值")); 例:HTML代码: 定位语句代码:Web ...
- Selenium入门系列5 默认不显示的下拉列表元素操作
本节课程的下拉框是那种默认隐藏,当鼠标移到菜单上下拉框才显示的.如果直接getelement会报错,提示元素不可见: so,得先让下拉列表显示出来再获取元素 用到的新知识: is_display() ...
随机推荐
- ajax加载菊花loading效果
Ajax异步请求的时候,一般都会利用一个动态的gif小图片来制作一个Ajax Loading,以便增加用户体验. 这里我们可以使用Spin.js,该js脚本压缩后5k,可以不用任何图片,任何外部CSS ...
- kohana reading session data error(session_start)引起的错误
在项目中碰到一个很奇怪的问题,同一个网站目录下两个项目,手机端访问从A项目切换到B项目,总是报错,session_start抛错,后来排查了很久,终于发现是存储session的时候直接存储的对象,导致 ...
- sql运算符优先级及逻辑处理顺序--查询sql执行顺序
sql逻辑处理顺序 --开启和关闭查询 --SET STATISTICS TIME ON---------------------------------------------请先来看看SET ST ...
- vue(2)创建项目
1.创建项目 cmd到自己指定目录下,执行 vue init webpack-simple hello-vue 2.安装项目依赖 cd hello-vue cnpm install 3.运行该项目,测 ...
- JWT(JSON Web Token)原理简介
原文:http://www.fengchang.cc/post/114 参考了一下这篇文章:https://medium.com/vandium-software/5-easy-steps-to-un ...
- java——io、字节流缓冲区拷贝文件、字节缓冲流
使用try catch finally关闭文件流: 写入文件: import java.io.*; public class exp{ public static void main(String[] ...
- requirej入门(一)
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
- android Activity启动过程(二)从ActivityManagerService的startActivity到栈顶Activity的onPause过程
ActivityManagerService.startActivity() ActvityiManagerService.startActivityAsUser() ActivityStackSup ...
- maya2015无法安装卸载激活失败
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- IPM的修炼之路
总结了一下最近一年半来看到的产品经理方面的素养资料. 产品经理: 必备素质:市场洞察,抽象概括,创新想象,心思细腻,热爱产品,具备一定的企业家精神等. 是通才:市场,项目,设计,管理,用户,统计,心理 ...