Javascript 使用SeleniumWebDriver和Java实现聚合物滑块自动化
我必须自动使用polymer UI构建滑块。 当前使用动作的代码在Chrome版本35中运行良好,但在更高的Chrome版本中执行测试时无法拖放滑块。我做了一些研究,但找不到合适的答案来解决这个问题。我发现,需要Javascript来解决这个问题。 有人可以分享Javascript来帮助我吗?如果您需要我提供更多详细信息,请告诉我。 注意:我已经尝试过对我没有帮助的动作和机器人。/** *此函数将拖放sourceElement直到targetElement *@param sourceElement *@param targetElement */ public void sliderDragDrop(WebElement sourceElement、WebElement targetElement) { int xdraggerObj=sourceElement.getLocation().x; int-ydraggerObj=sourceElement.getLocation().yJavascript 使用SeleniumWebDriver和Java实现聚合物滑块自动化,javascript,selenium,slider,polymer,Javascript,Selenium,Slider,Polymer,我必须自动使用polymer UI构建滑块。 当前使用动作的代码在Chrome版本35中运行良好,但在更高的Chrome版本中执行测试时无法拖放滑块。我做了一些研究,但找不到合适的答案来解决这个问题。我发现,需要Javascript来解决这个问题。 有人可以分享Javascript来帮助我吗?如果您需要我提供更多详细信息,请告诉我。 注意:我已经尝试过对我没有帮助的动作和机器人。/** *此函数将拖放sourceElement直到targetElement *@param sourceEleme
int xLocatorTo=targetElement.getLocation().x;
int yLocatorTo=targetElement.getLocation().y;
String xTo=Integer.toString(xLocatorTo-xdraggerObj);
String yTo=Integer.toString(yLocatorTo-ydraggerObj);
((JavascriptExecutor) driver).executeScript(
"function simulate(f,c,d,e){var b,a=null;for(b in eventMatchers)if(eventMatchers[b].test(c)){a=b;break}if(!a)return!1;document.createEvent?(b=document.createEvent(a),a==\"HTMLEvents\"?b.initEvent(c,!0,!0):b.initMouseEvent(c,!0,!0,document.defaultView,0,d,e,d,e,!1,!1,!1,!1,0,null),f.dispatchEvent(b)):(a=document.createEventObject(),a.detail=0,a.screenX=d,a.screenY=e,a.clientX=d,a.clientY=e,a.ctrlKey=!1,a.altKey=!1,a.shiftKey=!1,a.metaKey=!1,a.button=1,f.fireEvent(\"on\"+c,a));return!0} var eventMatchers={HTMLEvents:/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,MouseEvents:/^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}; "
+ "simulate(arguments[0],\"mousedown\",0,0); simulate(arguments[0],\"mousemove\",arguments[1],arguments[2]); simulate(arguments[0],\"mouseup\",arguments[1],arguments[2]); ",
sourceElement, xTo, yTo);
}