-
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
更多相关内容 -
vue自定义表单生成器form-create使用详解
2020-12-08 21:25:05form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成器。并且支持生成任何 Vue 组件。结合内置17种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。 文档 | github 演示... -
[Ext JS ] 7.25.1 Form或者面板自动定位到错误的输入框
2022-04-21 19:45:42Form有众多输入框, 一般会设置纵向的滚动条。 该状况下在提交表单时,如果某些字段的输入值非法, 且这些字段不在直接显示的页面中时, 点击提交按钮感觉没有产生效果。 定位非法字段位置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)分别提交到两个处理表单页面的代码
2020-10-31 02:35:21在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码 -
selenium命令之定位页面元素
2021-06-14 05:00:10Target在web页面范围内识别UI元素,它使用locatorType=location的格式。在很多情况下,locatorType可以省略,下面举例方式来描述各种类型的locatorType.假如,有如下一段HTML代码:< html><...原标题:selenium命令之定位页面元素
关注,一起 学习+涨薪不掉队!
定位页面元素
对于很多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表单验证未通过验证位置)
2021-10-11 20:45:15leterror_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]/... -
form 表单提交的时候 提示那些没有填写 ---以及定位到报错位置--表单报错
2020-11-02 20:20:39this.$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:形成一个高中地方定位器系统前端
2021-03-13 08:15:37form-one-place-locator-frontend:形成一个高中地方定位器系统前端 -
vue中使用refs定位dom出现undefined的解决方法
2020-11-29 02:47:36之前在公司做项目,一直感觉用ref来定位dom节点挺方便的。但是期间遇到了一个问题,就是在mounted(){}钩子里面使用this.$refs.xxx,打印出来的却是undefined? 于是我就对比了一下之前使用ref定位的.vue文件,发现了... -
python定位xpath 节点位置的方法
2021-01-20 06:10:29趁热打铁,使用前一篇文章中 XPath 节点来定位HTML 页面。 HTML文件如下(您可以将其拷贝,保存成html文件,跟我笔者实验): <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> ... -
解决antd中Povper包裹Input结合Form.Item出现的箭头定位误差
2020-08-06 08:37:43如果在Form.Item中使用Popover包裹Input会导致无法触发rules (这里指直接把Popover包裹Input写在Form.Item里面), 只得Popover包Form.Item包Input但是存在标题中提到的rules验证开启时的气泡箭头定位误差(如图)... -
python selenium xpath定位操作
2020-12-17 02:44:44xpath是一种在xm文档中定位的语言,详细简介,请自行参照百度百科,本文主要总结一下xpath的使用方法,个人看法,如有不足和错误,敬请指出。 注意:xpath的定位 同一级别的多个标签 索引从1开始 而不是0 1. 绝对... -
AntDesign+TS实现天地图打点定位组件
2021-11-05 14:48:04以组件的形式实现天地图打点定位的功能, 调用示例: (lng, lat) => { console.log(lng,lat); return null; }} /> -
css3 transform导致子元素固定定位变成绝对定位的方法
2020-11-21 15:20:17本文介绍了css3 transform导致子元素固定定位变成绝对定位的方法,分享给大家,也给我自己留个笔记,方便查找。 <!DOCTYPE html> <html> <head> <style> body { background: #f60; // 橙色 ... -
用JavaScrip正则表达式验证form表单的方法
2020-12-13 14:53:47document:标签之间 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自动化测试之页面元素定位
2021-01-20 06:27:31上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到... -
JavaScript微信定位功能实现方法
2021-01-19 16:21:26分享下微信是如何定位的: ... //用ajax请求 $.ajax({ url: /wechat/jssdk,//请求地址 type: 'post',//post请求 dataType: 'json', contentType: application/x-www-form-urlencoded; charset=utf-8, dat -
HTTP请求返回415错误码定位解决: form未定义
2021-06-29 15:15:26原因 api接口查询参数的data类型写成了form类型 括号内的参数名需要与data内参数一致 -
selenium-form表单操作
2021-11-02 21:00:431.什么是表单 表单时一个包含表单元素的区域 表单元素时允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等)输入信息的元素 表单使用表单标签(<form>)定义。例如:<form><input/>... -
Zebra_Form表单类 v2.9.4.zip
2019-07-07 06:33:01◾从我移植的客户端验证从MooTools的到jQuery和它打破了“电子邮件” (用一个“s ” )规定修正的一个bug可追溯至2011年6月2日( ! ) ; ◾修正一个错误的验证码图片的缓存; ◾clientside_validation方法现在有... -
js光标定位文本框回车表单提交问题的解决方法
2020-12-01 10:35:16本文实例讲述了js光标定位文本框回车表单提交问题的解决方法。分享给大家供大家参考。具体分析如下: 当光标定位在辅助查找的文本框后回车,页面会出现方法的返回的json串。 原因:When there is only one single-... -
javascript实现网页字符定位的方法
2020-12-09 16:56:41form 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表单内input的基本介绍
2021-10-30 17:44:46form align="center"> 用户名: <div><input type="text" placeholder=请输入用户名> </div> 密码 :<div><input type="password" placeholder="请输入密码"> </div> ... -
在C#程序中对MessageBox进行定位的方法
2021-01-20 05:56:40在 C# 中没有提供方法用来对 MessageBox 进行定位,但是通过 C++ 你可以查找窗口并移动它们,本文讲述如何在 C# 中对 MessageBox 进行定位。 首先需在代码上引入所需名字空间: using System.Runtime.... -
Selenium使用CSS定位 总结
2021-11-19 15:38:41Selenium使用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,然后经百度大神提...