拖放动作已通过,但Selenium中未发生动作

时间:2019-10-18 13:14:46

标签: javascript selenium selenium-webdriver

硒3.141

Chrome和Firefox浏览器


我正在尝试使用Selenium在Web应用程序的两个字段之间拖放对象。

我注意到拖放字段被突出显示,这确认了拖放字段是正确的,并且我看到一些动作突出显示了滚动条,但是对象没有被丢弃。

WebElement source = fromfield.findElement(By.xpath(".//*[contains(@title,'task1')]"));
WebElement tofield = driver.findElement(By.xpath("//*[contains(@data-field-name,'task2')]"));
highlight(source)
highlight(tofield) //both dragdrop fields gets highlighted
Actions maction=new Actions(driver);
maction.dragAndDrop(source, tofield).build().perform();
//tried below alternative way of dragdrop by increasing/decreasing pause duration but no success
maction.clickAndHold(source).pause(2000).moveToElement(tofield).pause(2000).release().build().perform(); 

预期结果:DragDrop应该在字段之间发生

实际结果:突出显示了“拖放”字段,并且通过了拖放操作,但没有删除对象。

从Infern0输入后,尝试使用下面的代码段,但出现异常。

String js_filepath = "C:/test/drag_and_drop_helper.js";
 String java_script = null;
 String text = null;
 BufferedReader input = new BufferedReader(new FileReader(js_filepath));
 StringBuffer buffer = new StringBuffer();
 while ((text = input.readLine()) != null)
        buffer.append(text + " ");
        java_script = buffer.toString();
 jse.executeScript(java_script+"$('#{objectProperty_c77}').simulateDragDrop({ dropTarget: '#{objectProperty_c76}'});"); 

js参考:https://gist.github.com/rcorreia/2362544#file-drag_and_drop_helper-js

异常:org.openqa.selenium.JavascriptException:SyntaxError:意外令牌:标识符

1 个答案:

答案 0 :(得分:0)

手动拖放和使用硒之间有区别。 我有类似的问题,元素被突出显示(显然应该在移动),但没有。这是因为背后触发了javascript事件。

问题神通过使用本地javascript事件进行拖放来解决。您可以在网络上找到此类实现。