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

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

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. w、who、last、lastbon、lastlog显示登录命令用法

    一.w 显示已登录用户信息和用户正在执行命令 1.命令功能 w可以显示已登录系统的用户,并显示用户正在执行的命令 2.语法格式 w option user 选项说明 选项 选项说明 -h 不显示前两行 ...

  2. Java学习01-使用maven插件tomcat搭建web maven项目

    我使用社区版的IDEA,社区版的没有tomcat插件,只能使用maven插件进行tomcat的使用了,下面进入正题 一.pom.xml配置tomcat插件 <build> <fina ...

  3. Laravel5.5去除URL中的index.php生成优雅链接

    在使用Apache情况下: Laravel 框架通过 public/.htaccess 文件来让网址中不需要 index.php.如果你的服务器是使用 Apache ,请确认是否有开启 mod_rew ...

  4. c语言模块化编程

    C语言模块化编程(封装) 模块即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明.模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c文件,然后把该模块的接口函 ...

  5. Google为远程入侵Titan M芯片提供最高150万美元的赏金

    Google最近发布了一项新的公告,旨在提高对发现和报告Android操作系统中的严重漏洞的漏洞赏金的奖励,Google昨天为黑客设定了新的挑战性水平,使他们可以赢得高达150万美元的赏金. 从今天开 ...

  6. HDU-1045-Fire Net(最大匹配)

    链接: https://vjudge.net/problem/HDU-1045#author=zzuli_contest 题意: 假设我们有一个有直街的广场城市.城市地图是一个方形板,有n行和n列,每 ...

  7. Python 函数Ⅲ

    默认参数 调用函数时,默认参数的值如果没有传入,则被认为是默认值.下例会打印默认的age,如果age没有被传入: 以上实例输出结果: 不定长参数 你可能需要一个函数能处理比当初声明时更多的参数.这些参 ...

  8. 访问SpringBoot中的Swagger的方法

    1.首先启动springboot+swagger的工程. 2.在application.yml里面查看服务的端口号,比如这里是9510. 3.访问URL:http://localhost:9510/t ...

  9. 【错误记录】Python 负数取余问题

    print(-123%10)   # 输出 7   print(-123%-10)  # 输出 -3 这里面第二条是我们一般意义上的取余操作.这里也特别标注一下,如果涉及到负数取余要用上述解决办法. ...

  10. maven 配置私服 连接

    两种方法: 1.在单个项目的pom.xml中使用 私服的连接地址,这样只对该项目起作用. 2.在maven的setting.xml配置中添加私服的连接地址.这样对所有项目起作用. 本文章只演示第二种方 ...