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. Ubuntu14上安装Mongo3.2

    1. 安装 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D68FA50FEA312927 echo "deb ...

  2. 安装openstack时遇到的错误

    学习opensatck的第一步是安装DevStack来进行本机操作 1. 下面命令没有权限,解决办法:切换到root用户下执行sudo -s echo "stack ALL=(ALL) NO ...

  3. java 数据库连接

    一.JDBC(Java Database Connectivity) JDBC是Java语言中访问数据库的应用程序接口,可以为多种关系数据库提供统一访问. jdbc.properties jdbc.d ...

  4. 关于WampServer一些配置修改

    1.解决WAMP mysql中文乱码问题(在mysql的my.ini文件中) 1).找到client字段并添加:default-character-set=utf8 2).找到mysql字段并添加: ...

  5. getElementsByTagName() 兼容性

    写东西的时候用到了getElementsByTagName(),我一直以为js 写的东西是不会有兼容性的,这次在ie8下,getElementsByTagName()就不支持了,那怎么办呢,我就查到一 ...

  6. ubuntu 16.04 && google账号问题

    1.按ctrl + H 可以显示文件夹的隐藏内容 2.创建文件夹 sudo mkdir -p /usr/share/fonts/vista         创建文件用 vim filename.xxx ...

  7. 05-spring整合jdbc-jdbc模板对象JdbcTemplate

    1 演示JdbcTemplate模板对象 1 导包 2 准备数据库 3 书写UserDao package www.test.dao; import java.util.List; import ww ...

  8. Zend Optimizer安装、配置

    Zend Optimizer用优化代码的方法来提高php应用程序的执行速度.实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化.这里,我们下载最新版 ...

  9. Java工具-检验ftp服务器的指定文件是否存在

    项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现. import org.apache.commons.net.ftp.FTP; impo ...

  10. 警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:esignmanage' did not find a matching property.解决

    1.开发环境: 环境:myeclipse2015+tomcat7+win10 2.异常: 偶尔在部署项目的时候回发现tomcat7部署后配置文件按照路径居然找不到自己的项目.httP://localh ...