Selenium中如何使用xpath更快定位
在学习Selenium路上,踩了也不少坑,这是我最近才发现的一个新写法,好吧,"才发现"又说明我做其他事了。对的,我现在还在加班!
开车~~~
例子:知乎网
标签:Python3.6,Selenium
1、通常我们使用xpath的时候,我们会通过Chrome或者Firefox中自带的定位提示,复制粘贴到我们的脚本中去。这是新手最喜欢做的事了。
现在我们要改变那种习惯,在一些没必要的时候,就不要复制粘贴了
我们尝试复制粘贴的xpath方式登录知乎:

我们看到,每一个xpath定位的元素都是很长很长,这样会给我们带来视觉的不舒服,而且这样可以看出,复制的xpath就是复制源码的路径,没有太多的技术性
2、现在我们根据xpath语法对定位元素进行修改:
我们先去看一下知乎登录网页的源码是怎样的吧

登录这个元素是在一个div(class="navs-slider")下的<a>标签下的,这样我们就可以直接通过class name找到“登录”元素了。


我们根据xpath的语法书写://*[@这里写class name]
想知道更多语法,可以去w3cshool了解 http://www.w3school.com.cn/xpath/xpath_syntax.asp
这样一写,我们就可以简化我们的例子了

写出来就高大上好多了。
我们这样写,是找到元素的上一级的class name来定位我们需要的元素,这样就简化了很多代码,减少我们的代码量了,同时也不会看到每定位一个元素就要一大行代码了。
Selenium中如何使用xpath更快定位的更多相关文章
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景 在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...
- Python3.x:Selenium中的webdriver进行页面元素定位
Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...
- selenium学习笔记(xpath和css定位)
简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代码: 这个是xpath #!/usr/bin/env python # -*- coding: utf_8 - ...
- [Selenium]中使用css选择器进行元素定位
参考:http://www.cnblogs.com/webblog/archive/2009/07/07/1518274.html 常见语法 * 通用元素选择器,匹配任何元素 E 标签选择器,匹配所有 ...
- 在selenium中使用css选择器进行元素定位
Sizzle Css3还提供一些直接选取form表单元素的伪类 :input: Finds all input elements (includes textareas, selects, and b ...
- selenium 中在 iframe 内的元素定位
有些时候 元素明明就在 但是通过什么方式定位都提示 定位不到元素 此时就要考虑元素是不是内嵌在iframe 中 对于内嵌在 ifra中的元素定位 首先定位到 iframe 元素 例如 iframe = ...
- Selenium基础知识(8大元素定位概说)
1. By.name() 页面源码如下: [html] : <button id="gbqfba"aria-label="Google Search" n ...
- TableCache设置过小造成MyISAM频繁损坏 与 把table_cache适当调小mysql能更快地工作
来源: 前些天说了一下如何修复损坏的MyISAM表,可惜只会修复并不能脱离被动的境地,只有查明了故障原因才会一劳永逸. 如果数据库服务非正常关闭(比如说进程被杀,服务器断电等等),并且此时恰好正在更新 ...
- [译] 优化 WEBPACK 以更快地构建 REACT
原文地址:OPTIMIZING WEBPACK FOR FASTER REACT BUILDS 原文作者:Jonathan Rowny 译文出自:掘金翻译计划 本文永久链接:https://githu ...
随机推荐
- 使用Mongodb+Shiro+SpringMVC实现动态权限分配
此次的文档只对Mongodb整合Shiro并且实现动态权限分配做整理,其它的内容以后会补上. 第一步.创建在web.xml中配置 Spring .Shiro shiroFilter 过滤器是用来将请求 ...
- Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之登录功能
昨天的博客中我分享了个人关于ssh实现员工管理的框架整合,今天我在分享管理员登录功能的实现. 转载请注明出处"http://www.cnblogs.com/smfx1314/p/78013 ...
- Java多线程Master-Worker模式
Java多线程Master-Worker模式,多适用于需要大量重复工作的场景中. 例如:使用Master-Worker计算0到100所有数字的立方的和 1.Master接收到100个任务,每个任务需要 ...
- Netty——高级发送和接收数据handler处理器
netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和 ...
- MongoDB安装(windows 10环境)
1. 下载 https://www.mongdb.com/ 选择版本:ws 2008 R2 64bit 2. 安装运行下载完成的MSI文件 安装时候选择自定义配置,选择安装路径,安装到E盘 等待2分钟 ...
- 利用Pycharm本地调试spark-streaming(包含kafka和zookeeper等操作)
环境准备就不说了! 第一步:打开Pycharm,在File->Setting->Project Structure中点击Add Content Root 添加本地python调用java和 ...
- [转载] NoSQL简介
摘自“百度百科”. NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从 ...
- linux操作系统基础篇(二)
Linux用户.群组.权限 1.用户也是由一个个文件组成的下列文件都是存放用户信息的文件 useradd user1 /etc/passwd: 存放用户信息 /etc/shadow/ :存放用户密码 ...
- 设置Linux环境的欢迎登陆信息
1.编辑/etc/profile文件添加如下内容: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ &quo ...
- Linux nc 命令传输文件
NAME nc - arbitrary TCP and UDP connections and listensSYNOPSIS nc [-46DdhklnrStUuvz] [-i interv ...