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 单个元素的定位方法的更多相关文章

  1. Python3 Selenium自动化web测试 ==> 第二节 页面元素的定位方法 <上>

    前置步骤: 上一篇的Python单元测试框架unittest,我认为相当于功能测试测试用例设计中的用例模板,在自动化用例的设计过程中,可以封装一个模板,在新建用例的时候,把需要测试的步骤添加上去即可: ...

  2. Maven入门系列(二)--设置中央仓库的方法

    原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...

  3. Selenium入门系列4 选择并操作一组元素

    选中一组元素的方式也是8种,与选中单个元素一一对应.区别只在于element与elements.elements取到的是一个数组,element取符合条件的第一个元素. 首先在脚本的目录下新建test ...

  4. 02.Web大前端时代之:HTML5+CSS3入门系列~H5结构元素

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 1.结构元素 可以理解为语义话标记,比如:以前这么写&l ...

  5. 03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 2.功能元素 1.hgroup 对网页或区段(secti ...

  6. selenium使用Xpath+CSS+JavaScript+jQuery的定位方法(治疗selenium各种定位不到,点击不了的并发症)

    跟你说,你总是靠那个firebug,chrome的F12啥的右击复制xpath绝对总有一天踩着地雷炸的你死活定位不到,这个时候就需要自己学会动手写xpath,人脑总比电脑聪明,开始把xpath语法给我 ...

  7. UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)

    Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...

  8. sellenium页面元素的定位方法

    1.findElements函数可用于多个元素定位 (1)使用ID定位:driver.findElement(By.id("ID值")); 例:HTML代码: 定位语句代码:Web ...

  9. Selenium入门系列5 默认不显示的下拉列表元素操作

    本节课程的下拉框是那种默认隐藏,当鼠标移到菜单上下拉框才显示的.如果直接getelement会报错,提示元素不可见: so,得先让下拉列表显示出来再获取元素 用到的新知识: is_display()  ...

随机推荐

  1. python 字符串的特性

    #######str字符串#####str字符判断大小写  url1 = 'http://www.cctv.com'  url2 = 'file:///mnt'  print url1.startsw ...

  2. Ubuntu 14.04下MySQL服务器和客户端的安装

    下面进行简单的配置 安装完成后通过修改/etc/mysql/my.cnf(此文件为mysql的配置文件).将文件中的binding-address=127.0.0.1注释掉.其它配置根据需要更改. H ...

  3. 练习六十八:pyecharts模块练习

    用一个地图显示最热的几个城市温度 代码(用Geo模块) from pyecharts import Geo attr = ["西安","上海","苏州 ...

  4. SQL Server外部链接时报错:Error locating serverInstance specified

    SQL Server外部链接时报错:Error locating server/Instance specified 连接时报错信息: 08001 sql server network interfa ...

  5. python__画图表可参考(转自:寒小阳 逻辑回归应用之Kaggle泰坦尼克之灾)

    出处:http://blog.csdn.net/han_xiaoyang/article/details/49797143 2.背景 2.1 关于Kaggle 我是Kaggle地址,翻我牌子 亲,逼格 ...

  6. JVM---概述

    1.JVM架构 1.1 JVM组成: ClassLoader类加载器 : 将class文件加载到JVM内存中: Runtime Data Area运行时数据区域 :  java程序运行时的内存区域: ...

  7. Mybatis学习笔记10 - 动态sql之if判断

    示例代码: 接口定义: package com.mybatis.dao; import com.mybatis.bean.Employee; import java.util.List; public ...

  8. 关于JAVA的基本知识

    TCP/IP 协议族常用协议 应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 传输层:TCP,UDP 网络层:IP,ICMP,OSPF,EIGRP,IGMP 数据链 ...

  9. maya2017安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  10. 基于Python实现邮件发送

    import smtplibfrom email.mime.text import MIMETextemail_host = 'smtp.163.com' # 邮箱地址email_user = 'sz ...