加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

twitter-bootstrap – Selenium webdriver点击vs action.click有

发布时间:2020-12-18 00:29:09 所属栏目:安全 来源:网络整理
导读:我正在自动化网站中的弹出对话框中苦苦挣扎,出于某种原因,它不会单击对话框中的按钮,但与其他所有内容完美交互.它也确定了没有问题的按钮,我可以看到当它看起来运行它似乎点击了按钮颜色改变,所以我有点卡住. 我的代码原本看起来非常明显: – WebElement ta
我正在自动化网站中的弹出对话框中苦苦挣扎,出于某种原因,它不会单击对话框中的按钮,但与其他所有内容完美交互.它也确定了没有问题的按钮,我可以看到当它看起来运行它似乎点击了按钮颜色改变,所以我有点卡住.

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

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的引用.有关更多信息,请查看 here和 here.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读