硒+铬驱动程序拖放无法正常工作



我正在使用Selenium 3.14和ChromeDriver 2.42以及Chrome 69.0。我一直在使用此代码进行拖放,直到最近测试开始失败时,它一直有效:

$driver->action()->clickAndHold()->moveByOffset(100, 0)->release()->perform();

经过一些Chrome更新后,它只是停止拖动。我也尝试了dragAndDropBy()功能,但没有运气。(dragAndDrop()不是一个选项,因为我需要在一个元素内移动(。

经过数小时的实验,我能够将问题缩小到这个奇怪的事情,当使用更大的数字时,就像我示例中的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();

如果有人遇到类似的问题,我只想分享这一点。

相关内容

  • 没有找到相关文章

最新更新