精华内容
下载资源
问答
  • 2019-10-24 18:56:17

    弹出框定位里面的元素,注意里面存在class、name相同这个方法就不适用了

    driver.find_element_by_class_name('dhx_cell_cont_wins').find_element_by_id('pers_pin_register_id').send_keys('12121')

     弹出框定位里面的元素,注意里面存在class、name相同这个方法需要在element后面加上s

    更多相关内容
  • form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成器。并且支持生成任何 Vue 组件。结合内置17种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。 文档 | github 演示...
  • Form有众多输入框, 一般会设置纵向的滚动条。 该状况下在提交表单时,如果某些字段的输入值非法, 且这些字段不在直接显示的页面中时, 点击提交按钮感觉没有产生效果。 定位非法字段位置

    Form有众多输入框, 一般会设置纵向的滚动条。 该状况下在提交表单时,如果某些字段的输入值非法, 且这些字段不在直接显示的页面中时, 点击提交按钮感觉没有产生效果。
    比较理想的效果是如果有字段输入非法, 滚动条能自动滚动到非法的字段, 如下图:
    在这里插入图片描述

    实现方案探求

    如何实现上述的效果呢? 遍查Ext.form.Panel 相关方法, 找到了 scrollTo ( x, y, [animate] ) 可以设置滚动条的位置。这个方法有三个参数, 前两个分别是x和y坐标, 第三个是可选的参数,设置设置是否有动画效果。
    于是想到: 将非法字段的坐标设置作为参数进行滚动条的设置是否就可以了呢? 代码类似:

    form.scrollTo(fields[i].getPosition()[0],fields[i].getPosition()[1],true);
    

    在滚动条没有任何滚动的时候, 上面是有效的, 但是但滚动条滚动之后,上面的方法就失效了。为什么呢?
    原因是滚动条滚动之后, 各字段对应的坐标都会发生变化, 这个变化的量也就是滚动条的量。这里主要是纵坐标, 也就是 formPanel.getScrollY()

    展开全文
  • 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,所以会出现可以找到元素,但是由于找到的那个元素是隐藏的不可操作的,所以就出现操作失效的情况

     

     

    展开全文
  • 在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
  • 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");

    责任编辑:

    展开全文
  • leterror_div=document.body.querySelector(".ivu-form-item-error-tip"); this.$nextTick(()=>{ if(error_div) document.body .querySelector(".ivu-form-item-error-tip") .scrollIntoView({behavior:"sm....
  • python selenium 定位一个textarea元素?

    千次阅读 2021-02-03 00:23:33
    /div/input').clear() driver.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input').send_keys('自己的微博密码') driver.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/...
  • this.$refs.form.validate((valid, object) => { if (valid) { alert('submit!'); } else { var str = '' const arr = [] for(let value in object){ // 处理 报错 提示信息 arr.push(object[.
  • form-one-place-locator-frontend:形成一个高中地方定位器系统前端
  • 之前在公司做项目,一直感觉ref来定位dom节点挺方便的。但是期间遇到了一个问题,就是在mounted(){}钩子里面使用this.$refs.xxx,打印出来的却是undefined? 于是我就对比了一下之前使用ref定位的.vue文件,发现了...
  • 趁热打铁,使用前一篇文章中 XPath 节点来定位HTML 页面。 HTML文件如下(您可以将其拷贝,保存成html文件,跟我笔者实验): <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> ...
  • 如果在Form.Item中使用Popover包裹Input会导致无法触发rules (这里指直接把Popover包裹Input写在Form.Item里面), 只得Popover包Form.Item包Input但是存在标题中提到的rules验证开启时的气泡箭头定位误差(如图)...
  • xpath是一种在xm文档中定位的语言,详细简介,请自行参照百度百科,本文主要总结一下xpath的使用方法,个人看法,如不足和错误,敬请指出。 注意:xpath的定位 同一级别的多个标签 索引从1开始 而不是0 1. 绝对...
  • 以组件的形式实现天地图打点定位的功能, 调用示例: (lng, lat) => { console.log(lng,lat); return null; }} />
  • 本文介绍了css3 transform导致子元素固定定位变成绝对定位的方法,分享给大家,也给我自己留个笔记,方便查找。 <!DOCTYPE html> <html> <head> <style> body { background: #f60; // 橙色 ...
  • document:标签之间 location:url history:前进后退 <html> <head> [removed] ... //定位到按钮 var buttonElement=document.forms[0].mybtn; //动态绑定show方法 butt
  • Python Selenium 定位详解

    2020-12-21 13:42:38
    一、id定位find_element_...百度部分关键html源码如下:百度输入框和百度一下的按钮都id,那么定位代码如下:#coding=utf-8from selenium import webdriverimport timedriver = webdriver.Chrome()#等待driver.im...
  • 上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到...
  • 分享下微信是如何定位的: ... //ajax请求 $.ajax({ url: /wechat/jssdk,//请求地址 type: 'post',//post请求 dataType: 'json', contentType: application/x-www-form-urlencoded; charset=utf-8, dat
  • 原因 api接口查询参数的data类型写成了form类型 括号内的参数名需要与data内参数一致
  • selenium-form表单操作

    2021-11-02 21:00:43
    1.什么是表单 表单时一个包含表单元素的区域 表单元素时允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等)输入信息的元素 表单使用表单标签(<form>)定义。例如:<form><input/>...
  • ◾从我移植的客户端验证从MooTools的到jQuery和它打破了“电子邮件” (一个“s ” )规定修正的一个bug可追溯至2011年6月2日( ! ) ; ◾修正一个错误的验证码图片的缓存; ◾clientside_validation方法现在...
  • 本文实例讲述了js光标定位文本框回车表单提交问题的解决方法。分享给大家供大家参考。具体分析如下: 当光标定位在辅助查找的文本框后回车,页面会出现方法的返回的json串。 原因:When there is only one single-...
  • form name="f1" action="" onSubmit="if(this.t1.value!=null && this.t1.value!='') findString(this.t1.value);return false"> <input type="text" name=t1 value="" size=20> <input type="submit" ...
  • 表单form的研究

    千次阅读 2021-06-12 08:53:02
    起因最近经常在群里看到诸如以下这些问题:怎么按...针对这些问题分享下我对使用表单的一些建议。优化前用户名:密码:搜索词:手机号:年龄:自我介绍:$('#J-save').on('click', function (){// 验证信息// 异步 or 同...
  • form align="center"> 用户名: <div><input type="text" placeholder=请输入用户名> </div> 密码 :<div><input type="password" placeholder="请输入密码"> </div> ...
  • 在 C# 中没有提供方法用来对 MessageBox 进行定位,但是通过 C++ 你可以查找窗口并移动它们,本文讲述如何在 C# 中对 MessageBox 进行定位。 首先需在代码上引入所需名字空间:   using System.Runtime....
  • Selenium使用CSS定位总结,包括CSS定位和Xpath定位的区别
  • element-ui的el-table和el-form表单校验嵌套使用

    万次阅读 热门讨论 2019-06-07 14:11:34
    在项目遇到table中嵌套form,并且带表单验证的需求,效果图如下: 刚开始el-form-item定义了静态prop(prop=“sn”),结果input填入值后错误提示一直存在,自定义校验的value也为undefined,然后经百度大神提...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 110,081
精华内容 44,032
关键字:

有form用什么定位