selenium怎么定位这个按钮,求高手解决下。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium怎么定位这个按钮,求高手解决下。相关的知识,希望对你有一定的参考价值。
html path
<a href="javascript:void(0)" id="addRecord" class="easyui-linkbutton l-btn l-btn-small l-btn-plain" data-options="iconCls:'icon-add',plain:true" onclick="openDialog()" group=""><span class="l-btn-left l-btn-icon-left"><span class="l-btn-text">Append</span><span class="l-btn-icon icon-add"> </span></span></a>
xpath:
//*[@id="addRecord"]
css path:
#addRecord
试过各种定位方法,id/xpath/css等等都不行。求指导一下,谢谢了。
WebElement find_by_LinkText = driver.findElement(By.linkText("Append"));
使用这个定位方法的话,注意页面中连接的文本不能有重复的,例如你上面代码的Append追问
额,上面忘了写上,link text也试过了。 还是不行。
追答你要测试的这个页面可以通过外网访问吗,需要看一下你的页面才能了解具体是什么问题引起的。
追问很遗憾,不能连接外网,这是一个按钮,用了很多span来定义样式,按理来说,这些span都是无关紧要的才对。
追答还有一种解决方法,就是findElements来遍历页面所有的a href 这个 tag,注意是 findElements,后面有个 s 的,然后从中选择文字是 Append 的,可以试一下。
追问按照你说的,我先定位了a href="javascript:void(0)"再定位id("addRecord")或者linke_text("Append"),都报错了:
AttributeError: 'list' object has no attribute 'find_element_by_id'
不知道这个list值的是什么。
下面是用java实现的代码,我没有python环境,你根据下面的代码改成python的试试。
List elm = driver.findElements(By.tagName("a"));
for (int i=0;i< elm.size();i++)
if(elm.get(i).getText().equals("Append"))
elm.get(i).click();
python+selenium使用location定位元素坐标偏差
使用xpath定位元素,用.location获取坐标值,出现较大的偏差,求原因和解决方法
我也遇到了这个问题,解决了,说下我这儿出现的原因和解决方法,希望对你有帮助。我是使用定位截图时出现这个问题的,之所以会出现这个坐标偏差是因为电脑上设置的显示缩放比例造成的,location获取的坐标是按显示100%时得到的坐标,而截图所使用的坐标却是需要根据显示缩放比例缩放后对应的图片所确定的,因此就出现了偏差。
解决这个问题有三种方法:
① 修改电脑显示设置为100%。这是最简单的方法。
② 缩放截取到的页面图片,即将截图的size缩放为宽和高都除以缩放比例后的大小(应该需要将缩放后的宽和高转化为int型)
③ 修改Image.crop的参数,将参数元组的四个值都乘以缩放比例(应该也需要转化为int型)
个人比较喜欢后两种,可以将电脑显示的缩放比例作为一个单独的参数放到整体环境参数里,每次只用改下这个参数就行了。当然如果能通过程序自动获取操作系统的这个参数的话更好。 参考技术A 首先通过name定位用户名和密码,再调用方法clear()清除输入框默认内容,如“请输入密码”等提示,通过send_keys("**")输入正确的用户名和密码,最后通过click()点击登录按钮或send_keys(Keys.RETURN)相当于回车登录,submit()提交表单。
PS:如果需要输入中文,防止编码错误使用send_keys(u"中文用户名")。 参考技术B 元素坐标偏差追问
是说xpath定位的有问题吗?
以上是关于selenium怎么定位这个按钮,求高手解决下。的主要内容,如果未能解决你的问题,请参考以下文章
selenium3.0 调用Chrome报这个--ignore-certificate-errors怎么解决?求高手
DW在使用css+div排版时,为啥有的div标签不在固定位置呢,网页放大后,就会移动,求高手解答!谢谢