我正在将Selenium 3.14和ChromeDriver 2.42与Chrome 69.0结合使用。我一直使用此代码进行拖放操作,直到最近测试开始失败为止,这种方法一直有效:
$driver->action()->clickAndHold()->moveByOffset(100, 0)->release()->perform();
Chrome进行一些更新后,它刚刚停止拖动。我也尝试过dragAndDropBy()
函数,但是没有运气。 (dragAndDrop()
不是一个选择,因为我需要在一个元素内移动)。
答案 0 :(得分:1)
经过数小时的试验,我能够将问题缩小到这怪异的事情,当使用具有更大数字的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();
如果有人遇到类似问题,我只想分享一下。