拖放不适用于无头 chromedriver
Drag and Drop does not work with headless chromedriver
我正在使用 Selenium 和 Java 自动拖放。以下是用于在无头模式下使用 chrome 驱动程序执行拖放的代码。
Point classname = targetElement.getLocation();
int xcordi = classname.getX();
int ycordi = classname.getY();
Actions action = new Actions(driver);
action.clickAndHold(sourceElement).moveByOffset(xcordi, ycordi).release(targetElement).build().perform();
在无头 chrome 驱动程序中执行时没有任何反应。但是,在非无头 chrome 驱动程序中,这可以正常工作并执行拖放操作。
注意 - 尝试同时使用 dragAndDropBy(source, target) 和 dragAndDropBy(source, xOffset, yOffset)。这两种方法都不适用于非无头 chrome
我认为我们无法帮助您调试 Chrome 浏览器与无头版本之间的差异。我不认为这是一个已知问题,也没有已知的解决方法。
一条建议:
- 使用 html 代码创建一个最小测试,您可以用它来证明 dragAndDrop 只会无头地失败,公开发布它。
- 之后创建一个 chromium 错误:https://www.chromium.org/for-testers/bug-reporting-guidelines
- 向无头邮件列表寻求支持,链接到您的示例失败测试:https://groups.google.com/a/chromium.org/forum/#!forum/headless-dev
也许在创建您的最小测试时,您会弄清楚它为什么有效,但不是针对您的具体情况。应用程序的行为与浏览器不同 headless :)
我正在使用 Selenium 和 Java 自动拖放。以下是用于在无头模式下使用 chrome 驱动程序执行拖放的代码。
Point classname = targetElement.getLocation();
int xcordi = classname.getX();
int ycordi = classname.getY();
Actions action = new Actions(driver);
action.clickAndHold(sourceElement).moveByOffset(xcordi, ycordi).release(targetElement).build().perform();
在无头 chrome 驱动程序中执行时没有任何反应。但是,在非无头 chrome 驱动程序中,这可以正常工作并执行拖放操作。
注意 - 尝试同时使用 dragAndDropBy(source, target) 和 dragAndDropBy(source, xOffset, yOffset)。这两种方法都不适用于非无头 chrome
我认为我们无法帮助您调试 Chrome 浏览器与无头版本之间的差异。我不认为这是一个已知问题,也没有已知的解决方法。
一条建议:
- 使用 html 代码创建一个最小测试,您可以用它来证明 dragAndDrop 只会无头地失败,公开发布它。
- 之后创建一个 chromium 错误:https://www.chromium.org/for-testers/bug-reporting-guidelines
- 向无头邮件列表寻求支持,链接到您的示例失败测试:https://groups.google.com/a/chromium.org/forum/#!forum/headless-dev
也许在创建您的最小测试时,您会弄清楚它为什么有效,但不是针对您的具体情况。应用程序的行为与浏览器不同 headless :)