Selenium 硒+;Chrome驱动程序拖放操作不正常

Selenium 硒+;Chrome驱动程序拖放操作不正常,selenium,selenium-chromedriver,Selenium,Selenium Chromedriver,我使用的是硒3.14和ChromeDriver 2.42以及Chrome69.0。我一直使用此代码进行拖放操作,直到最近测试开始失败时,这种方法才奏效: $driver->action()->clickAndHold()->moveByOffset(100, 0)->release()->perform(); 在一些Chrome更新之后,它停止了拖动。我还尝试了dragandropby()函数,但没有成功。(dragAndDrop()不是一个选项,因为我需要在一个

我使用的是硒3.14和ChromeDriver 2.42以及Chrome69.0。我一直使用此代码进行拖放操作,直到最近测试开始失败时,这种方法才奏效:

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

在一些Chrome更新之后,它停止了拖动。我还尝试了
dragandropby()
函数,但没有成功。(
dragAndDrop()
不是一个选项,因为我需要在一个元素中移动)。

经过几个小时的实验,我能够将问题缩小到这个奇怪的问题,当使用更大数字的moveByOffset时,如我的示例中的
100
失败,它只是奇怪地反弹到位。但当我试着只移动两个像素时,它成功了

这是我最后得到的代码:

$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();
$driver->action()->clickAndHold()->perform();
对于($i=0;$i<10;$i++){
//以10像素的速度移动10次,而不是以100像素的速度移动一次
$driver->action()->moveByOffset(10,0)->perform();
}
睡眠(1);
$driver->action()->release()->perform();
如果有人遇到类似的问题,我想和大家分享一下