我编写了以下代码来拖动元素并将其添加到工作区中。 控制台窗口中没有错误,但是在chrome浏览器中未执行拖放操作。 我已经尝试了多次,但未能成功。 请提供您的输入 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在将Selenium 3.14和ChromeDriver 2.42与Chrome 69.0一起使用。 我一直使用此代码进行拖放操作,直到最近测试开始失败为止,这种方法一直有效:
$driver->action()->clickAndHold()->moveByOffset(100, 0)->release()->perform();
Chrome进行一些更新后,它停止了拖动。 我也尝试过dragAndDropBy()
函数,但是没有运气。 ( dragAndDrop()
不是一个选项,因为我需要在一个元素内移动)。
经过数小时的试验,我能够将问题缩小到这个奇怪的事情,当使用具有更大数字的moveByOffset时(例如在我的示例中为100
失败),它只是怪异地反弹。 但是,当我尝试仅将其移动px时,它就起作用了。
这是我最终得到的代码:
$driver->action()->clickAndHold()->perform();
for($i = 0; $i < 10; $i++){
//moving this 10 times by 10 px instead of once by 100px
$driver->action()->moveByOffset(10, 0)->perform();
}
sleep(1);
$driver->action()->release()->perform();
如果有人遇到类似问题,我只想分享一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.