twitter-bootstrap – Selenium webdriver点击vs action.click有什么区别?

前端之家收集整理的这篇文章主要介绍了twitter-bootstrap – Selenium webdriver点击vs action.click有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在自动化网站中的弹出对话框中苦苦挣扎,出于某种原因,它不会单击对话框中的按钮,但与其他所有内容完美交互.它也确定了没有问题的按钮,我可以看到当它看起来运行它似乎点击了按钮颜色改变,所以我有点卡住.

我的代码原本看起来非常明显: –

WebElement targetElement = waitforElement(threadSesh);
targetElement.click();

但当我把它改成以下所有似乎都工作得很好!

WebElement targetElement = waitforElement(threadSesh);
Actions action = new Actions(threadSesh.driver);
action.click(targetElement);
action.perform();

任何人都可以告诉我为什么一种方法不起作用,而另一种方法工作正常?此外,无论是否有帮助,该网站使用twitter bootstrap构建,如果这有任何区别,但按钮本身是非常基本的,像这样.

<div class="modal hide fade in" style="width: 481px; margin-left: -241px; padding: 15px; display: block;" role="dialog" data-backdrop="static" data-keyboard="false" aria-hidden="false">
...
<div class="modal-footer">
<a id="save-EditDetails" class="btn btn-small btn-info" type="button" style="margin-right: 7px; padding-left: 15px; padding-right: 15px;" data-bind="click: ok" href="#">Save</a>
</div>
</div>

解决方法

我不确定您的具体情况,但WebElement点击方法和操作点击方法之间存在一些差异. Actions的click是很多dumber,它几乎只是将click事件发送到你传入的元素(位置).它不关心元素,它只是点击并向前移动而webelement click是一个阻塞调用(并不总是,检查引用),它也有前提条件,如要点击的WebElement必须可见.此外,webElements的click是一个void方法,actions单击返回对您正在使用的Actions的引用.有关更多信息,请查看 herehere.

编辑.看看你发布的标记,并且它可能是完全错误的,因为我不是自举CSS上的老板,模态隐藏淡入,尤其是部分淡入淡出看起来很可疑.您确定在发送webelement.click()时,您的元素是否处于可点击状态?怎么了?没有?再说一次,如果动作点击是可靠的,那么为什么不随便一起去,我的意思是,如果有什么作用,为什么要修复呢?

猜你在找的Bootstrap相关文章