本篇文章整理了元素定位的基础知识——单个元素定位方式。

一、单个元素定位方式简介

1. find_element_by_id

  通过元素的id属性进行定位。以百度首页为例,首先进入https://www.baidu.com,按F12进入开发人员页面,然后单击调试窗口的左上角的选择图标,然后选中百度搜索框,即可看到调试窗口对应所选元素的代码突出显示,如下图,可以看到百度搜索框的id为kw。

2. find_element_by_name

  通过元素的name属性进行定位。如上图,百度搜索框的name为wd。

3. find_element_by_class_name

  通过元素的class属性进行定位。如图1所示,百度搜索框的class_name为s_ipt。

4. find_element_by_link_text

  通过超链接的文本内容进行定位。

5. find_element_by_partial_link_text

  同4,不过该方法是通过模糊方式进行定位的,即通过超链接的部分文本内容进行定位。

6. find_element_by_xpath

  通过元素的xpath路径表达式进行定位。如下图,选中突出显示的代码右键选择copy,选择复制元素的xpath,百度搜索框对应的xpath为//*[@id="kw"]。

7. find_element_by_css_selector

  通过css选择器对元素进行定位。如上图,复制元素的selector,百度搜索框的css_selector为#kw。

8. find_element_by_tag_name

  通过元素的标签名进行定位。因为同一个页面中具有相同标签名的元素较多,所以不常用。

二、实例

 # coding=utf-8

 import time

 from selenium import webdriver

 # 单个元素的多种定位方式

 # 创建driver实例
driver = webdriver.Chrome()
# 打开百度首页
driver.get('https://www.baidu.com/')
# 1.通过id属性进行定位
# driver.find_element_by_id('kw').send_keys('id')
# 2.通过name属性进行定位
# driver.find_element_by_name('wd').send_keys('name')
# 3.通过class属性进行定位
# driver.find_element_by_class_name('s_ipt').send_keys('class_name')
# 4.通过link_text进行定位
# driver.find_element_by_link_text('新闻').click()
# 5.通过部分超链接文本内容进行定位
# driver.find_element_by_partial_link_text('闻').click()
# 6.通过xpath进行定位
# driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xpath')
# 7.通过css选择器进行定位
driver.find_element_by_css_selector('#kw').send_keys('css_selector')
# 定位'百度一下'按钮并点击
driver.find_element_by_id('su').click()
# 等待5s
time.sleep(5)
# 退出驱动程序并关闭浏览器
driver.quit()

Web UI自动化测试基础——元素定位(一)的更多相关文章

  1. Web UI自动化测试基础——元素定位(三)

    本篇文章整理了元素定位的基础知识——iframe框架中的元素定位. 一.iframe框架元素定位 iframe是Html页面的内联框架,如果在自动化测试中无法定位到某个元素,那么很有可能是因为该元素在 ...

  2. Web UI自动化测试基础——元素定位(二)

    本篇文章整理了元素定位的基础知识——多个元素定位方式. 一.多个元素定位方式简介 同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id.name.class_name.tag_nam ...

  3. [原创]浅谈Web UI自动化测试

    [原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...

  4. 简单Web UI 自动化测试框架 pyse

    WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...

  5. 【转】Web UI自动化测试原理

    目前市面上有很多Web UI自动化测试框架,比如WatiN, Selinimu,WebDriver,还有VS2010中的Coded UI等等.  这些框架都可以操作Web中的控件,模拟用户输入,点击等 ...

  6. 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

  7. web自动化测试(java)---元素定位

    和python类似,java-selenium也提供了很多种元素定位的方法,具体如下: findElement(By.id()) findElement(By.name()) findElement( ...

  8. python ui自动化之元素定位和常用操作

    做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示) 一.最通用的几种定位方式: 1.通过id定位 ...

  9. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

随机推荐

  1. Spring MVC文件上传下载(转载)

    原文地址: http://www.cnblogs.com/WJ-163/p/6269409.html 上传参考 http://www.cnblogs.com/lonecloud/p/5990060.h ...

  2. 中文转换为ASCII码的方式

    可以到jdk安装路径: 找到native2ascii.exe文件 双击运行,敲入中文即可获取对应的ASCII编码

  3. 第六篇:Scrapy框架

    爬虫框架之Scrapy 一.介绍 二.安装 三.命令行工具 四.项目结构以及爬虫应用简介 五.Spiders 六.Selectors 七.Items 八.Item Pipelin 九. Dowload ...

  4. 集合综合练习<一>

    1208421001,关羽,数学,93 1208421001,关羽,英语,88 1208421002,张飞,语文,82 1208421002,张飞,数学,83 1208421002,张飞,英语,89 ...

  5. 对TypeScript进行研究

    1.npm install -g typescript 在编辑器,将下面的代码输入到greeter.ts文件里: function greeter(person) { return "Hel ...

  6. python1--比较三个数值的大小

    num1 = input("num1:")num2 = input("num2:")num3 = input("num3:")num = m ...

  7. java-dockerfile

    java环境dockefile FROM centos:7 MAINTAINER yon@taexa.com ENV JAVA_HOME /usr/local/jdk ENV JRE_HOME ${J ...

  8. The GuidRepresentation for the reader is CSharpLegacy, which requires the binary sub type to be Uuid

    使用客户端链接MongoDb报错 The GuidRepresentation for the reader is CSharpLegacy, which requires the binary su ...

  9. 指定文件或文件夹直接提交到svn指定目录

    我这里先说两种方法第一种:1.先将那个目录checkout下来2.将要添加的文件或者文件夹放到这个目录中3.右击文件执行svn菜单中的add命令4.右击文件执行svn菜单中的commit命令第二种:如 ...

  10. Bootstrap Table--onEditableSave

    当某列编辑完成后,需要对当前列所在的行进行修改操作: $("#grid").bootstrapTable({ url:'', …… …… //其他属性 columns:[{ fie ...