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() ...
随机推荐
- Docker 使用samba 共享文件
Docker 使用samba 共享文件 docker run -it --name samba \ -p 139:139 -p 445:445 \ -v /home/develop/code/de ...
- 查看当前linux有多少http连接数
已采纳 1.查看apache当前并发访问数: #对比httpd.conf中MaxClients的数字差距多少.netstat -an | grep ESTABLISHED | wc -l 2.查看ht ...
- logback日志简记
%date{HH:mm:ss.SSS} [%thread] %-5level %logger{20}:%line - %msg%n 输出: 09:54:09.657 [main] INFO c.e. ...
- MapReduce 调优-Combiner
下图是演示了Combiner的好处 因为我们知道Hadoop的好处在于集群中有很多小的机器,组成了一个庞大的集群,把一个大的计算任务后者说复杂的计算过程分发到了一个个小的机器上面.但是这个集群一个致命 ...
- SpringBoot中使用Servlet
1.在入口Application类上加入注解@ServletComponentScan @SpringBootApplication @ServletComponentScan public clas ...
- keepalived双机热备实现故障时发送邮件通知
目前项目已经采用nginx来实现负载均衡,但是nginx调度器只有一台,上次还意外的down机一次,导致整个服务应用全部瘫痪,这次准备再加一个调度器来实现站点高可用性,也就是常说的双机热备了. mas ...
- Ajax实现跨域访问的三种方法
转载自:http://www.jb51.net/article/68424.htm 一.什么是跨域 我们先回顾一下域名地址的组成: http:// www . google : 8080 / scri ...
- Xtrareport 多栏报表
首先看下布局designer 细节: 分组一定要用到GroupHeather 设置好有 右边会出现 接下来是代码部分 Form1中代码 using DevExpress.XtraReports.UI; ...
- dll托管于非托管
托管的DLL组件可以在VS 直接添加引用,在使用using dll的文件命名空间就可以使用 非托管的DLL组件,只能通过using system.Runtime.InteropServices:引入 ...
- Access 2010入门、语文
Access2010入门 数据管理库是按照数据结构来组织,存储和管理数据的仓库. 最早出现的数据库是网状DBMS 1970年,EFCodd博士提出关系模型的概念,提出关系模型的理论基础. SQL语言功 ...