※元素定位的重要性:在于查找元素 And 执行元素

定位元素的三种方法

  • 1、定位单个元素:在定位单个元素时,selenium-webdriver 提示了如下一些方法对元素进行定位。在这些定位方式中,优先使用id、name、classname,对于网上的链接元素,推荐使用linkText定位方式,对于不好定位的元素,考虑使用火狐的插件去辅助定位(xpath)。
  • 2、定位多个元素
  • 3、层级定位:层级定位的思想是先定位父元素,然后再从父元素中精确定位出其我们需要选取的子元素。层级定位一般的应用场景是无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。比较典型的应用是表格的定位。

findElement和findElements方法

  1. findElement()返回一个WebElement元素
  2. findElements()返回一个List,多个WebElement元素

八种定位方式

•By.id(id):通过ID 属性查找

•By.name(name):通过name属性查找

•By.className(className) :通过classname属性查找

•By.linkText(链接文本):通过链接文本

•By.partialLinkText(部分链接文本):通过部分链接文本

•By.cssSelector(Css路径):通过CSS路径

•By.tagName(name):通过tagname查找

•By.xpath(XPath路径):通过XPath查找

例如:idnameclassname

import 

例如:By.linkText(Link文本)

HTML 

例如:By.partialLinkText(部分链接文本)

HTML 

例如:By.cssSelector(Css路径)

HTML 

例如:By.tagName(name)

HTML 

例如:By.xpath(XPath路径)

HTML 

注意:

1.使用findElement()方法查找元素,元素必须是唯一

2.findElements()同样支持这八种定位方式,只是获取的是多个元素,返回List

XPATH介绍:
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

请看下面这个 XML 文档:

<?

上面的XML文档中的节点例子:<bookstore> (文档节点)<author>J K. Rowling</author> (元素节点)lang="en" (属性节点)

选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

下面列出了最有用的路径表达式:

实例,在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

XPath 轴

轴可定义相对于当前节点的节点集。

详细了解xpath,请参照 https://www.w3school.com.cn/xpath/xpath_summary.asp

selenium 表单提交结果_了解 Selenium 定位方式相关推荐

  1. form的onsubmit事件--表单提交前的验证最佳实现方式

    今天遇到了一个问题,页面中include了很多的公共页面(都是没有form的),并且里面好多的地方都是自行提交的(页面中加入一个type="submit"域,然后js中写入sumb ...

  2. form表单提交带参数的两种方式

    #第一种方式# action写明了LoginServlet,通过submit按钮直接提交到后台 <form action="LoginServlet" method=&quo ...

  3. html表单提交前检查,form的onsubmit事件--表单提交前的验证最佳实现方式

    今天遇到了一个问题,页面中include了很多的公共页面(都是没有form的),并且里面好多的地方都是自行提交的(页面中加入一个type="submit"域,然后js中写入sumb ...

  4. php表单提交邮箱_最全实现dede订单表单提交发送到指定邮箱(附前台设置)

    打造销售型网站的订单系统.不是所有销售都有权限登陆网站后台查看订单,特别是外地出差时,用户下了订单后不能及时服务用户,可能会造成订单丢失.但dedecms默认的订单提交后只能在后台看到的,每次都要登陆 ...

  5. 表单提交报错405的解决方式

    大家好,我是雄雄,欢迎关注公众号:雄雄的小课堂. 今天,分享一个bug的解决的方法,到最后解决了也不知道为啥这样是可以的,原来的方法是不可以的-- 01 问题描述 项目中有这样的一个需求,就是在原来的 ...

  6. 表单提交防止恶意修改

    表单提交恶意修改有很多种方式了. 觉得根本防止不了, 这次看到的是关于 增加其他表单项 给过滤掉的方法 原理: 事先定义好 只提交固定的几个name值, 不是的就去掉. 代码样例 转载于:https: ...

  7. ajax form表单提交_开发日志:金数据表单自动提交脚本

    最近学校要求我们每天通过一个在线表单打卡自己在家做的体育课项目,在提交的时候我突然想了下如果能有一个自动的系统每天帮我自动打卡岂不是能省很多时间?而且我一直很想学Python的网络爬虫以及服务器后端的 ...

  8. python自动登录并提交表单_用python模拟登录(解析cookie + 解析html + 表单提交 + 验证码识别 + excel读写 + 发送邮件)...

    老婆大人每个月都要上一个网站上去查数据,然后做报表. 为了减轻老婆大人的工作压力,所以我决定做个小程序,减轻我老婆的工作量. 准备工作 1.tesseract-ocr 这个工具用来识别验证码,非常好用 ...

  9. ajax提交form表单数据_[基础编程学习] [PHP7数组详解]:第2章 (1)从表单提交数据说起...

    读完本章节内容,您能得到以下知识: 定义和使用数组 创建表单,并验证表单提交的数组 创建简单的数组结构 操作简单数组的值 遍历数组结构 将表单数据存入数组 存入数组之前进行数据验证 # 2.1 为什么 ...

最新文章

  1. 字节跳动面试题:用归并排序判断冒泡排序的轮数
  2. H5网站接入支付宝的支付接口
  3. Python学习,装饰器,元类
  4. 简单的docker-compose编写介绍(包含 nginx+tomcat 实例演示)
  5. VS2010 MFC中控件、对话框等背景颜色动态修改的方法
  6. jsoup怎么获取两个标签之间的text?
  7. java parseint()
  8. python软件测试面试题及答案_软件测试面试 | 一道大厂算法面试真题,你能答上来吗?(附答案)...
  9. 支持javascript的ppt软件_强大CSS3的3D幻灯片工具reveal.js(推荐)
  10. Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core“
  11. 自己写的主从查询代码
  12. 小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
  13. GLib-CRITICAL : g_variant_get_uint32: assertion ‘g_variant_is_of_type (value, G_VARIANT_TYPE_UINT32)
  14. Linux将文件复制粘贴到另外一个位置
  15. 谢菲尔德大学的MATLAB遗传算法工具箱(附代码文件)
  16. 社会学概论(本专)【2】
  17. 雪人(snowman)
  18. 通过动态域名解析(DDNS)实现远程控制Windows主机
  19. linux远程端口查看
  20. WorldFirst靠谱吗?跨境收款工具万里汇WorldFirst介绍!

热门文章

  1. windows 编程随笔——输出文本WM_PAINT消息|有效矩形和无效矩形
  2. ArcGIS Server开发的一些小经验
  3. hexo+github 一小时搭建个人博客
  4. 計算機二級-java04
  5. java猜拳论文_Java人机猜拳实现的思路及方法实例
  6. 【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4)
  7. 鸿蒙轻内核源码分析:虚实映射
  8. 技术实践丨基于MindSpore框架Yolov3-darknet模型的篮球动作检测体验
  9. 轻松云上揽胜中华,靠的就是这份聪明的“地图”!
  10. 【程序员自救指南】中关村保洁大叔的一句话竟然帮我转正了