python学习的一个定位_python学习之——selenium元素定位
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元素定位相关推荐
- python xpath定位不到_Xpath定位方法深入探讨及元素定位失败常见情况
一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...
- Selenium元素定位方法大全
目录 一.背景 二.浏览器定位元素 三.Selenium元素定位代码 3.1 通过id定位 3.2 通过class定位 3.3 通过name定位 3.4 通过tagname定位 3.5 通过link_ ...
- python xpath定位打印元素_python基础教程:8种selenium元素定位的实现
前言 selenium是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到元素定位了,在HTML中都有着不同的标签和属性,selen ...
- java8种定位_python基础教程:8种selenium元素定位的实现
前言 selenium是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到元素定位了,在HTML中都有着不同的标签和属性,selen ...
- 面试被问:Selenium元素定位不到问题,如何回答?
1.maven有什么作用? 最常用的maven相关功能大概以下几种: a. 管理jar依赖 b. 构建项目(打包.编译等) c. 发布项目(共享.上传至服务器,供他人使用) Maven用配置文件的方式 ...
- 解决selenium版本过时 和 selenium - 元素定位
# selenium模板# @Time : 2022/6/29 16:40# (1)导入selenium from selenium import webdriver from selenium.we ...
- python游戏编程网课_Python 学习最佳方式_创建游戏_编程一个机器人
Python 是世界上功能最多且最强大的编程语言之一.使用 Python,你可以编写自己的应用程序,创建游戏.设计算法.甚至编程一个机器人.学习 Python 还可以担任软件工程师.Web 开发人员. ...
- python组合数据类型有哪些_Python学习之组合数据类型
一.概述 计算机不仅仅要对单个变量表示的数据进行处理,还需要对一组数据进行批量处理.如: 给定一组单词{python,data,function,list,loop},计算并输出每个单词的长度. 给定 ...
- python学习笔记简书_Python学习笔记
本人在廖雪峰的python教程学习python,在此记录一些笔记,记一些重要的东西,以便查询及复习. 输入与输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. print()会依 ...
最新文章
- 一个小游戏Digger for .NET!
- 用 python 实现一个多线程网页下载器
- 第二章 创建webGL设备和绘制缓冲区呈现 Context Creation and Drawing Buffer Presentation
- android wifi定位服务,如何在Android中使用Wifi获取位置?
- go调用ethereum_Go语言爱好者周刊:第 76 期 — 新年计划做了吗?
- rola物联网框架_如何搭建一个物联网系统框架?
- .Net Core中的日志组件(Logging)
- 豪投10亿!华为放话:3年培养100万AI人才!网友神回应了
- C语言 指针和数组区别 - C语言零基础入门教程
- IEEE 第二届大数据、人工智能与物联网工程国际会议 (IEEE-ICBAIE 2021)
- Netty 源码深度解析(九) - 编码
- IE iframe不刷新的问题之完美解决
- 收不到 macOS 正式版更新提醒,如何在Mac上彻底退出Beta计划
- Redis通信协议和集群通信算法
- 制作后台首页详细步骤
- 计算机组成dr是什么意思,体检中DR诊断是什么意思
- 内联函数let、also、with、run、apply的用法
- macOS输入法导致系统卡住鼠标圈圈问题/风火轮
- 四连通 matlab,针对matlab 四连通,和八连通的详解
- 个人博客 SEO 优化(1):搜索引擎原理介绍
热门文章
- python Tags 母板 组件 静态文件相关 自定义simpletag inclusion_tag
- C/C++实现删除字符串的首尾空格
- 企业如何寻找最合适的托管数据中心,以维持IT和业务的增长运营
- cannot be deleted directly via the port API: has device owner network:floatingip
- spoolsv.exe占cpu 99%的解决方法(转)
- 使用机器学习预测天气_如何使用机器学习预测着陆
- leetcode 399. 除法求值(bfs)
- leetcode744. 寻找比目标字母大的最小字母(二分查找)
- web api json_有关使用JSON Web令牌保护无服务器API的速成班
- zeppelin连接数据源_使用开放源代码合同(open-zeppelin)创建以太坊令牌