1

我需要使用 Selenium Webdriver - Facebook PHP library 双击一个 dom 元素。

没有直接的方法可以在元素上执行双击,但是有一种方法可以解决这个问题,WebDriverMouse这就是我已经走了多远。

$myElement = $myWebDriver->findElement(WebDriverBy::id('myElement'));
$myWebDriver->getMouse()->doubleClick($myElement->getLocation());

不幸的是,这不起作用,因为->getLocation返回一个实例,WebDriverPoint但该方法->doubleClick()需要一个WebDriverCoordinates.

有没有更简单的方法来执行双击,或者有没有办法WebDriverCoordinates从对象中创建一个实例WebDriverPoint

非常感谢您的帮助。

4

2 回答 2

4

对不起,这个问题太快了。刚刚想通了:

$myElement = $myWebDriver->findElement(WebDriverBy::id('myElement'));
$myWebDriver->getMouse()->doubleClick($myElement->getCoordinates());
于 2013-11-05T10:00:52.577 回答
1

这是使用操作生成器的替代方法。

$myElement = $myWebDriver->findElement(WebDriverBy::id('myElement'));
$driver->actions()->doubleClick()->perform();

此外,$driver->actions()允许动作链/复合动作。

拖放示例:

$driver->actions()->mouseDown($source)
                  ->mouseMove($target)
                  ->mouseUp($target);
                  ->perform();

但实际上,您可以通过一种方法进行拖放。

$driver->actions()->dragAndDrop($source, $target)->perform();
于 2013-11-07T03:09:52.567 回答