精华内容
下载资源
问答
  • Target在web页面范围内识别UI元素,它使用locatorType=location的格式。在很多情况下,locatorType可以省略,下面举例方式来描述各种类型的locatorType.假如,如下一段HTML代码:< html><...

    原标题:selenium命令之定位页面元素

    31536e97d5060af1c5a72d4a4d40e2a1.png

    关注,一起 学习+涨薪不掉队!

    定位页面元素

    对于很多selenium命令,target域是必须的。Target在web页面范围内识别UI元素,它使用locatorType=location的格式。在很多情况下,locatorType可以省略,下面举例方式来描述各种类型的locatorType.

    假如,有如下一段HTML代码:

    < html>

    < body>

    < formid= "loginForm">

    < inputname= "username"type= "text"/>

    < inputname= "password"type= "password"/>

    < inputname= "continue"type= "submit"value= "Login"/>

    < inputname= "continue"type= "button"value= "Clear"/>

    < ahref= "continue.html">Continue a>

    form>

    body>

    html>

    我们看看selenium提供了那些定位方式:

    1. identifier定位

    这是最普遍的一种定位方式,当不能识别为其它定位方式后,默认为dientifier定位,在这种策略下,第一个使用id的页面元素将被识别出来,如果没有使用指定id的元素,那么将识别第一个名字与指定条件相符的元素。

    identifier识别html各项元素的定位策略如下:

    identifier=loginForm //定位页面元素为from

    identifier=username //定位页面元素为username

    identifier=Continue //定位页面元素为Continue

    因为identifier定位是默认方式,因此“identifier=” 可以不写。

    Continue //同样表示定位页面元素为Continue

    2. id定位

    这种定位方式比identifier定位范围更窄,当然也更具体,如果你知道元素id特征,就使用这种方式:

    id=loginFrom //定位页面元素from

    3. name定位

    名称定位方式将会识别第一个匹配名称属性的UI元素。如果多个元素拥有相同的名称属性,可以使用过滤器来进一步优化你的定位策略。默认的过滤器是Value (匹配value特征):

    name=username //定位页面元素为username

    name=Continue value=Clear //定位页面元素为Continue ,值为Clear

    name=Continue type=button //定位页面元素为Continue ,类型为button

    提示:

    上述三种定位器使得selenium可以不依赖于UI元素在页面上的位置而进行测试。所以,当页面结构发生变化时,测试依然可以通过。有时候,设计人员频繁改动页面的情况,通过id和name特征定位元素就变的非常重要。

    4. XPath定位

    XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。

    XPath扩展了上面id和name定位方式,提供了很多种可能性,比如定位页面上的第三个多选框。

    xpath=/html/body/form[1] //绝对路径(html的任何轻微改变都会导致失败)

    //form[1] //HTML中的第三个form元素

    xpath=//form[@id='loginForm'] //id为loginFrom的元素

    //input[@name='username'] //input元素且其name为‘username’

    //form[@id='loginForm']/input[1] //针对id为‘loginForm’的form,定位它的第一个input元素

    //input[@name='continue'][@type='button'] //name为‘continue’且type为‘button’的input

    //form[@id='loginForm']/input[4] //id为‘loingForm’的form,定位它的第四个input元素。

    扩展阅读:

    W3C XPath Recommendation: http://www.w3.org/TR/xpath/

    XPath Tutorial: http://www.zvon.org/xxl/XPathTutorial/General/examples.html

    http://www.w3.org/TR/xpath/

    Firefox插件,可以帮助你获取页面元素的XPath:

    XPath Checker Firebug

    5. 通过超链接定位

    可以通过连接文字来定位超链,如果两个链接文字相同,那么第一个匹配的将被识别出来。

    link=continue //定位页面元素连接文字为continue

    6. DOM定位

    Document Object Model 被用于描述HTML文档,可以使用java来访问。

    这一定位策略通过java评估页面上的元素,可以使用分级符号来简化元素定位。

    因为DOM定位以“document”开始,所以“dom=”标签并不是必须的。

    dom=document.getElementById('loginForm') // 定位页面元素form

    dom=document.forms['loginForm'] // 定位页面元素form

    dom=document.forms[0] // 定位页面元素form

    document.forms[0] .usernam //定位页面元素username

    document.forms[0] .elements[3] //定位页面元素continue,它是form的第四个元素

    7. CSS定位

    CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略。

    css=form#loginForm //定位页面元素form

    css=input[name="username"] //定位页面元素username

    css=input.required[type="text"] //定位页面元素,其类型为text

    css=input.passfield //定位页面元素,其类型为password

    css=#loginForm input[type="button"] //定位页面元素,其类型为button

    css=#loginForm input:nth-child(2) //定位页面元素passfield,且它为from的第二个input子元素

    扩展阅读:

    http://www.w3.org/TR/css3-selectors/

    提示:很多有经验的selenium用户推荐CSS定位方式,因为它比XPath更快。而且可以在HTML文件中找到更复杂的对象。

    --------------------------------------

    菜鸟提示:

    讲了这么多页面定位的方式,还是不明白干啥用的?

    自动化测试,我们通过工具来完成手工操作,如果我们要点击一个按钮,我们认得那是一个按钮,如何让自动化工具也认得那是一个按钮呢?如何让工具认得是“确定”按钮,而不是“取消”按钮呢。那每个按钮都有不同的属性,也许属性完全相同但位置不同。我们要通过他们的特征描述它们,然后自动化工具才能根据我们的描述去找到它们。

    那么,转换到我们的自动化测试代码是什么样子呢?

    //下面是在java代码的实现

    selenium.click("元素属性的描述");

    selenium.click("id=loginForm");

    selemiun.click("name=Continue value=Clear");

    责任编辑:

    展开全文
  • 关于FORM鼠标定位

    2009-12-25 09:30:44
    最近一个新需求,进入一个FORM界面时,要求定位到第一个项上,我试了以下几种方案:  1。最简单的方式:  把欲定位项拖到块中项的第一位。失败  2。GO-ITEM()  在WHEN-NEW-FORM-INSTANCE时,指定第一项。...

    最近有一个新需求,进入一个FORM界面时,要求定位到第一个项上,我试了以下几种方案:

       1。最简单的方式:

            把欲定位项拖到块中项的第一位。失败

       2。GO-ITEM()

            在WHEN-NEW-FORM-INSTANCE时,指定第一项。失败

            但在测试时,发现了一个奇怪的现象:FND_MESSAGE显示值 :SYSTEM.CURSOR_ITEM已经是第一项了,

            鼠标定位到了该项。

            如果没有用FND_MESSAGE显示信息,则不会定位。不知是何原因?

           

    展开全文
  • selenium+java form定位元素问题

    千次阅读 2019-09-28 18:37:04
    直接driver.findElement()可以找到元素,但是操作就出问题,非要先定位到表单form,再定位元素,层级定位再操作才不会报错 确认这个form下的元素都是这样的话,使用层级定位,可以解决这个问题 WebElement ...

     

    直接用driver.findElement()可以找到元素,但是操作就出问题,非要先定位到表单form,再定位元素,层级定位再操作才不会报错

    确认这个form下的元素都是这样的话,使用层级定位,可以解决这个问题

        WebElement form1=driver.findElement(By.id("profile"));
            WebElement job=form1.findElement(By.id("job"));

    这种情况通常是没留意是否有多个元素相同名字的情况

    后来查了下,确实有2个name为job的元素,但是因为我们用findElement,不是用findElements,所以会出现可以找到元素,但是由于找到的那个元素是隐藏的不可操作的,所以就出现操作失效的情况

     

     

    展开全文
  • 1、 任何Form须在属性中选定当前Form的MenuItem(display)和数据源(DataSource)2、 当前Form中的init()方法中重写该事件,就可以从Form的数据源中定位的字段值对当前数据源过滤符合数据区域!public void init...

    1  任何Form须在属性中选定当前FormMenuItemdisplay)和数据源(DataSource

    2、  当前Form中的init()方法中重写该事件,就可以从Form的数据源中定位的字段值对当前数据源过滤符合数据区域!

    展开全文
  • 弹出框定位里面的元素,注意里面存在class、name相同这个方法就不适用了 driver.find_element_by_class_name('dhx_cell_cont_wins').find_element_by_id('pers_pin_register_id').send_keys('12121') 弹出框定位...
  • 如果在Form.Item中使用Popover包裹Input会导致无法触发rules (这里指直接把Popover包裹Input写在Form.Item里面), 只得Popover包Form.Item包Input但是存在标题中提到的rules验证开启时的气泡箭头定位误差(如图)...
  • 对JSP数据传值理解了进一步提高。 form传值就是遇到的一个小问题。想很多新手 对form传值了解不深时,经常会遇到一些问题卡住。网络上的解决方法也五花八门,大部分不适合自己的需求。 下面说说传值方法。 比如...
  • form-one-place-locator-frontend:形成一个高中地方定位器系统前端
  • /**页面打开方法**/ void OpenFormInXtab(Form form)  {  String name = form.Text;  foreach (XtraTabPage XTpage in formXtraTabControl.TabPages)  {  i
  • 原因 api接口查询参数的data类型写成了form类型 括号内的参数名需要与data内参数一致
  • Ext.Button 在Ext.form.FormPanel中的定位

    千次阅读 2014-04-09 17:06:30
    主要原理:  利用{html : ' '}填充空格: Java代码  ...var Text1 = new Ext.form.TextField({   fieldLabel : 'Text1',   name : 'creator',   width : 100   }); 
  • FORM触发器

    千次阅读 2013-12-20 23:57:19
    PRE-FORM该触发器是在用户双击功能后,进入form前 WHEN-NEW-FORM-INSTANCE该触发器是在用户一进入form时执行 WHEN-FORM-NAVIGATE该触发器在用户在form间切换时执行; KEY-CLRFRM事件触发 KEY-...
  • 启动 Lotus Domino Designer 客户端,打开邮箱文件双击"Forms",在右侧显示的表单列表中,找到"Message" (如图)注意,此时 Message Form 左边是没有黄色星星的,也就是说这个表单不是缺省的数据库表单。...
  • this.$refs.form.validate((valid, object) => { if (valid) { alert('submit!'); } else { var str = '' const arr = [] for(let value in object){ // 处理 报错 提示信息 arr.push(object[.
  • FORM触发器解释

    2018-08-28 10:49:51
    FORM级触发器 PRE-FORM该触发器是在用户双击功能后,进入form前 WHEN-NEW-FORM-INSTANCE该触发器是在用户一进入form时执行 WHEN-FORM-NAVIGATE该触发器在用户在form间切换时执行; KEY-CLRFRM事件...
  • form表单技术清单

    2020-02-22 21:56:42
    目录一、form简介二、form的全局属性1. action2. accept-charset3. autocomplete4. enctype5. method6. name7. target三、form的输入控件四、form的手动提交1. 构造表单数据对象2. 提交表单总结 一、form简介 form...
  • SpringMVC的form表单标签使用(八)

    千次阅读 2019-08-29 12:15:45
    主要是 对Form 标签的详细介绍。
  • 但是一种情况,如果表单位于 v-for 标签中,是动态生成的,该怎么使用 el-form-item 来校验呢? 此外,如果待校验的表单是 el-popover 组件中的 readonly 表单,blur 触发不稳定,该怎么处理呢? 本文继续分享这...
  • ![图片说明](https://img-ask.csdn.net/upload/201909/15/1568538935_794761.jpg) **如何实现点击提交2的时候只提交表单2的内容,点击提交1的时候,表单1和2的内容一起提交呢**
  • 7-表单form

    2016-04-22 03:20:57
    form对象 一个标记,就是一个对象。 事件: onsubmit:当提交按钮时发生,且数据发往服务器之前发生onreset:重置 获取表单元素 通过id通过标签名通过name属性。表单中所有元素的起点都必须是document对象 ...
  • FORM个性化

    千次阅读 2014-02-12 11:33:48
     如何使用 Form 个性化控制  转移个性化设计至其他环境   1. 概述 Form 个性化允许您修改基于Form 基础页面的事件,包括:修改物件的属性、执行内建函数、产生提示信息和添加标签入口。 对于每个功能...
  • <!... <title></title> ... <form id='form1'> ... <img id="pic" src=""> </form> ...//注意 form 提交 时 input 的name 命名 要与后台接的字段一样 隐藏元素 type ="hidden" 存储      
  • ASP.NET母版页使用 按下回车刷新页面 去掉 <form></form>标签
  • form表单的底部居中

    千次阅读 2017-11-26 19:00:19
    利用css样式让form表单底部居中首先,我的html代码如下,在form表单中和标签:<!DOCTYPE html> 底部居中 <form id="zj_form"> <t
  • javaform小窗体示例label和image

    千次阅读 2013-03-31 22:16:43
    几个图片,点击后会改变表情label存文本信息,几个label存图片,把每个label定位form上。只要把代码考过去就好了。在根目录下创建一个image文件夹,放两张小表情,happy.gif,unhappy.gif 或者自己修改路径...
  • form 触发器执行顺序

    2013-09-01 17:44:32
    1当打开FORM时:  (1)PRE-FORM  (2)PRE-BLOCK(BLOCK级)  (3)WHEN-NEW-FORM-INSTANCE  (4)WHEN-NEW-BLOCK-INSTANCE  (5)WHEN-NEW-RECORD-INSTANCE  (6)WHEN-NEW-ITEM-...
  • C#中FORM1如何实现鼠标定位在textbox1上,如果不输入数值,其他button都是失效的而且其他textbox也是失效的
  • HTML form 垂直水平居中

    万次阅读 2016-06-28 11:47:34
    HTML中body代码:        欢迎登陆网站主页      用户名:      密   码:           然后,head中的style代码: ....divForm{ .../*绝对定位*/ width: 300p
  • 本文主要讲述Xpath语法中,和元素定位相关的语法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,256
精华内容 40,102
关键字:

有form用什么定位