web自动化测试按步骤拆分,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。

其中定位元素尤为关键,此篇是使用webdriver通过页面各个元素的属性值定位对象。

步骤:

一:环境准备

1.浏览器选择:Firefox

2.安装插件:Firebug和FirePath(设置》附加组件》搜索:输入插件名称》下载安装后重启浏览器)

3.安装完成后,页面右上角有个小爬虫图标

4.快速查看xpath插件:XPath Checker这个可下载,也可以不用下载

5.插件安装完成后,点开附加组件》扩展,有firebug、firepath、xpath checker已经安装完成

二:元素定位

通过firebug查看对象的属性值,根据webdriver提供的元素定位方法,定位。

其中:selenium的webdriver提供了八种基本的元素定位方法,前面六种是通过元素的属性来直接定位的,后面的xpath和css定位更加灵活。

1.通过id定位:find_element_by_id()

2.通过name定位:find_element_by_name()

3.通过class定位:find_element_by_class_name()

4.通过tag定位:find_element_by_tag_name()

5.通过link定位:find_element_by_link_name()

6.通过partial_link定位:find_element_by_partial_link_name()  超链接名称模糊匹配方式

7.通过xpath定位:find_element_by_xpath()

8.通过css定位:find_element_by_css_name()

通过xpath定位:

1.如果一个元素它既没有id、name、class属性也不是超链接,或者说它的属性很多重复的,这个时候就可以用xpath解决

2.xpath是一种路径语言,firepath插件查看一个元素的xpath,进行使用定位

通过css定位:

1.css是另外一种语法,比xpath更为简洁,先学会如何用工具查看

2.打开FirePath插件选择css,查看使用

实践:

#coding=utf-8

# selenium的webdriver元素定位

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get("https://www.baidu.com/")

time.sleep(5)

driver.find_element_by_id("kw").send_keys("python")

time.sleep(3)

driver.find_element_by_id("kw").clear()

time.sleep(3)

#点击百度首页的超链接

driver.find_element_by_link_text("百度首页").click()

time.sleep(3)

#点击登录按钮

driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click()

time.sleep(3)

python学习的一个定位_python学习之——selenium元素定位相关推荐

  1. python xpath定位不到_Xpath定位方法深入探讨及元素定位失败常见情况

    一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...

  2. Selenium元素定位方法大全

    目录 一.背景 二.浏览器定位元素 三.Selenium元素定位代码 3.1 通过id定位 3.2 通过class定位 3.3 通过name定位 3.4 通过tagname定位 3.5 通过link_ ...

  3. python xpath定位打印元素_python基础教程:8种selenium元素定位的实现

    前言 selenium是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到元素定位了,在HTML中都有着不同的标签和属性,selen ...

  4. java8种定位_python基础教程:8种selenium元素定位的实现

    前言 selenium是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到元素定位了,在HTML中都有着不同的标签和属性,selen ...

  5. 面试被问:Selenium元素定位不到问题,如何回答?

    1.maven有什么作用? 最常用的maven相关功能大概以下几种: a. 管理jar依赖 b. 构建项目(打包.编译等) c. 发布项目(共享.上传至服务器,供他人使用) Maven用配置文件的方式 ...

  6. 解决selenium版本过时 和 selenium - 元素定位

    # selenium模板# @Time : 2022/6/29 16:40# (1)导入selenium from selenium import webdriver from selenium.we ...

  7. python游戏编程网课_Python 学习最佳方式_创建游戏_编程一个机器人

    Python 是世界上功能最多且最强大的编程语言之一.使用 Python,你可以编写自己的应用程序,创建游戏.设计算法.甚至编程一个机器人.学习 Python 还可以担任软件工程师.Web 开发人员. ...

  8. python组合数据类型有哪些_Python学习之组合数据类型

    一.概述 计算机不仅仅要对单个变量表示的数据进行处理,还需要对一组数据进行批量处理.如: 给定一组单词{python,data,function,list,loop},计算并输出每个单词的长度. 给定 ...

  9. python学习笔记简书_Python学习笔记

    本人在廖雪峰的python教程学习python,在此记录一些笔记,记一些重要的东西,以便查询及复习. 输入与输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. print()会依 ...

最新文章

  1. 一个小游戏Digger for .NET!
  2. 用 python 实现一个多线程网页下载器
  3. 第二章 创建webGL设备和绘制缓冲区呈现 Context Creation and Drawing Buffer Presentation
  4. android wifi定位服务,如何在Android中使用Wifi获取位置?
  5. go调用ethereum_Go语言爱好者周刊:第 76 期 — 新年计划做了吗?
  6. rola物联网框架_如何搭建一个物联网系统框架?
  7. .Net Core中的日志组件(Logging)
  8. 豪投10亿!华为放话:3年培养100万AI人才!网友神回应了
  9. C语言 指针和数组区别 - C语言零基础入门教程
  10. IEEE 第二届大数据、人工智能与物联网工程国际会议 (IEEE-ICBAIE 2021)
  11. Netty 源码深度解析(九) - 编码
  12. IE iframe不刷新的问题之完美解决
  13. 收不到 macOS 正式版更新提醒,如何在Mac上彻底退出Beta计划
  14. Redis通信协议和集群通信算法
  15. 制作后台首页详细步骤
  16. 计算机组成dr是什么意思,体检中DR诊断是什么意思
  17. 内联函数let、also、with、run、apply的用法
  18. macOS输入法导致系统卡住鼠标圈圈问题/风火轮
  19. 四连通 matlab,针对matlab 四连通,和八连通的详解
  20. 个人博客 SEO 优化(1):搜索引擎原理介绍

热门文章

  1. python Tags 母板 组件 静态文件相关 自定义simpletag inclusion_tag
  2. C/C++实现删除字符串的首尾空格
  3. 企业如何寻找最合适的托管数据中心,以维持IT和业务的增长运营
  4. cannot be deleted directly via the port API: has device owner network:floatingip
  5. spoolsv.exe占cpu 99%的解决方法(转)
  6. 使用机器学习预测天气_如何使用机器学习预测着陆
  7. leetcode 399. 除法求值(bfs)
  8. leetcode744. 寻找比目标字母大的最小字母(二分查找)
  9. web api json_有关使用JSON Web令牌保护无服务器API的速成班
  10. zeppelin连接数据源_使用开放源代码合同(open-zeppelin)创建以太坊令牌