gpt4 book ai didi

twitter-bootstrap - Selenium webdriver click 与 action.click 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 00:49:56 26 4
gpt4 key购买 nike

我正在自动化的网站中遇到弹出对话框,由于某种原因,它不会单击对话框中的按钮,但与其他一切交互良好。它还可以毫无问题地识别按钮,并且在观看它运行时我可以看到,随着颜色的变化,它似乎确实单击了按钮,所以我有点卡住了。

我的代码最初看起来非常明显:-

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单击方法之间有一些区别。 Actions 的 click 更加愚蠢,它几乎只是将 click 事件发送到您传入的元素(位置)。它不关心元素,它只是执行单击并向前移动,而 webelement click 是一个阻塞调用(并非总是如此,请检查引用)并且它还有先决条件,例如要单击的 WebElement 必须可见。另外,webElements 的 click 是一个 void 方法,action click 返回对您正在使用的 Action 的引用。欲了解更多信息,请查看herehere .

<小时/>

编辑。看看你发布的标记,它可能是完全错误的,因为我不是 bootstrap CSS 的老板,模式隐藏淡入,尤其是淡入部分看起来可疑的。您确定发送 webelement.click() 时您的元素处于可点击状态吗?会发生什么?没有什么?话又说回来,如果点击操作可靠地工作,为什么不直接使用它,我的意思是,如果有东西有效,为什么要修复它?

关于twitter-bootstrap - Selenium webdriver click 与 action.click 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com