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. lintcode - 统计比给定整数小的数的个数(两种方法)

    class Solution { public: /* * @param A: An integer array * @param queries: The query list * @return: ...

  2. Flask&&人工智能AI --5 Flask-session、WTForms、数据库连接池、Websocket

    未完待续.... DButils 什么是数据库连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库 ...

  3. kohana reading session data error(session_start)引起的错误

    在项目中碰到一个很奇怪的问题,同一个网站目录下两个项目,手机端访问从A项目切换到B项目,总是报错,session_start抛错,后来排查了很久,终于发现是存储session的时候直接存储的对象,导致 ...

  4. Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(centos6.9) at 14:59:05.

    查找网上资料解决方法如下 [root@localhost ssh]# service sshd start Starting sshd: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  5. plSql添加快捷键设置

    汉化版:工具-首选项-用户界面-编辑器-自动替换-定义文件 英文版:Tools->Perferences->Editor中Autoreplaces选择配置的shortcuts 常用快捷键设 ...

  6. Java 实践

    /** *宠物就是一个标准,包含多类宠物 *定义宠物标准接口Pet *定义Cat和Dog两个Pet接口的子类 *使用链表结构动态存储宠物信息 *定义商店类(工厂类),负责宠物的上架(链表添加).下架( ...

  7. cmake中文帮助文档

    CMake的 在这个页面 了解CMake的生成命令 在摇篮使用cmake变量 报告问题 使用过Android Studio 2.2及更高版本,可以使用NDK和CMake的 编译C和C ++代码到本机库 ...

  8. powerdesigner 遇到的各种问题总结

    1. 设置自增 打开表 -- 在具体列的前面双击即可添加各种属性 2. 生成sql 时设置编码 database --> generate database --> format --&g ...

  9. Trees on the level UVA - 122 (二叉树的层次遍历)

    题目链接:https://vjudge.net/problem/UVA-122 题目大意:输入一颗二叉树,你的任务是按从上到下,从左到右的顺序输出各个结点的值.每个结点都按照从根节点到它的移动序列给出 ...

  10. [转]jQuery的.live()和.die()

    本文转自:http://www.cnblogs.com/dumuqiao/archive/2011/09/09/2172513.html 翻译原文地址:http://www.alfajango.com ...