51Testing软件测试论坛

标题: 定位不到div中的button按钮是怎回事 [打印本页]

作者: Danson    时间: 2016-12-20 11:00
标题: 定位不到div中的button按钮是怎回事
html:
<fieldset>
      <input type="password" tabindex="3" placeholder="请输入二级密码" maxlength="20"><a style="display: inline; width: 12px; height: 12px; border-radius: 12px; border: 2px solid rgb(80, 78, 78); background-color: rgb(80, 78, 78);" class="sa-input-error" href="javascript:;"></a>
</fieldset>
<div class="sa-error-container"><div class="icon">!</div>

<p>Not valid!</p>


</div>
<div class="sa-button-container">
<button class="cancel" tabindex="2" style="display: inline-block; color: rgb(0, 0, 0); font-size: 12px; border-radius: 18.5px; margin-left: 37.4px; margin-right: 37.4px;">取消</button>

<button class="confirm" tabindex="1" style="display: inline-block; background-color: rgb(174, 222, 244); box-shadow: none; color: rgb(255, 255, 255); font-size: 12px; border-radius: 18.5px; margin-left: 37.4px; margin-right: 37.4px;">确定</button>


</div>

selenium java
        WebElement fybanksRecharge2 = driver.findElement(By.xpath("(//input[@type='password'])[2]"));
        fybanksRecharge2.click();
        fybanksRecharge2.sendKeys("111111");
        WebElement fybanksRecharge3 = driver.findElement(By.cssSelector("button.confirm"));
        fybanksRecharge3.click();
或者用xpath各种查寻都无法定位到按钮,IDE直接报了定位不到或者Timeout帮我看看吧




作者: 玲玲公主    时间: 2016-12-20 11:41
试试用
WebElement fybanksRecharge3 = driver.findElement(By.id("button的id"));
作者: 掉渣饼    时间: 2016-12-20 11:45
你看下你的页面源码中是不是有iframe?
作者: Danson    时间: 2016-12-20 13:01
掉渣饼 发表于 2016-12-20 11:45
你看下你的页面源码中是不是有iframe?

没有
作者: Danson    时间: 2016-12-20 13:03
玲玲公主 发表于 2016-12-20 11:41
试试用
WebElement fybanksRecharge3 = driver.findElement(By.id("button的id"));

button没有id属性啊
作者: 玲玲公主    时间: 2016-12-20 13:43
Danson 发表于 2016-12-20 13:03
button没有id属性啊

那试试By.name
作者: 掉渣饼    时间: 2016-12-20 16:45
Danson 发表于 2016-12-20 13:01
没有

fybanksRecharge2.click();这个你写错了
改成fybanksRecharge2.clear();试试
作者: Danson    时间: 2016-12-20 18:00
掉渣饼 发表于 2016-12-20 16:45
fybanksRecharge2.click();这个你写错了
改成fybanksRecharge2.clear();试试

我是要定位button按钮,点击啊,怎么clear?
作者: 清晨一缕阳光    时间: 2016-12-20 21:37
fybanksRecharge2.click();改为 fybanksRecharge2.clear();
定位到的  fybanksRecharge2元素是一个密码输入框,不是button。click一个type=password的input输入框,必然会报错。
定位元素的方法有很多种,不一定非要用xpath。根据提供的html代码,可以使用className和CSSselector两种方法去定位。

作者: 掉渣饼    时间: 2016-12-21 09:04
Danson 发表于 2016-12-20 18:00
我是要定位button按钮,点击啊,怎么clear?

fybanksRecharge2是一个输入框,不是button按钮,你用click()方法当然报错,我看了你的页面源码,因为你输入框中有默认提示,所以让你把 fybanksRecharge2.click();改成 fybanksRecharge2.clear();
作者: Danson    时间: 2016-12-21 16:48
掉渣饼 发表于 2016-12-21 09:04
fybanksRecharge2是一个输入框,不是button按钮,你用click()方法当然报错,我看了你的页面源码,因为你 ...

主要是fybanksRecharge3.click();报错了,帮我看看这个怎么搞,输入框上有个按钮无法点击属性是button=confirm
作者: Danson    时间: 2016-12-21 16:50
清晨一缕阳光 发表于 2016-12-20 21:37
fybanksRecharge2.click();改为 fybanksRecharge2.clear();
定位到的  fybanksRecharge2元素是一个密码 ...

主要是fybanksRecharge3.click();有问题,输入框上有个按钮无法点击属性是button=confirm,怎么定位都不行,执行脚本通过了并没有报错,但是页面没有跳转过去,通过IDE回放SLOW可以通过,FAST失败,迷茫中
作者: 掉渣饼    时间: 2016-12-22 09:03
Danson 发表于 2016-12-21 16:50
主要是fybanksRecharge3.click();有问题,输入框上有个按钮无法点击属性是button=confirm,怎么定位都不 ...

建议你不要用selenium IDE录制工具回放,自己去写脚本,然后在fybanksRecharge2.sendKeys("111111");下面加个等待时间去回放,你SLOW可以通过,因为当你fybanksRecharge2.sendKeys("111111");执行完成后,需要时间去找下一个元素
作者: 掉渣饼    时间: 2016-12-22 09:16
Danson 发表于 2016-12-21 16:50
主要是fybanksRecharge3.click();有问题,输入框上有个按钮无法点击属性是button=confirm,怎么定位都不 ...

建议你在fybanksRecharge2.sendKeys("111111");下面加个等待时间,然后不要用selenium IDE回放
作者: 掉渣饼    时间: 2016-12-22 09:18
掉渣饼 发表于 2016-12-22 09:16
建议你在fybanksRecharge2.sendKeys("111111");下面加个等待时间,然后不要用selenium IDE回放

你是用Java语言写的,应该是可以用eclipse工具写代码的并回复,但是需要安装插件,或者其他工具也行
作者: jingzizx    时间: 2016-12-31 14:09
学习
作者: 苒苒物华休    时间: 2019-3-26 15:34
同样的问题,请问您解决了吗?
作者: Real_小T    时间: 2019-4-2 15:04
.confirm




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2