动作类不适用于 selenium 3.5.3
Posted
技术标签:
【中文标题】动作类不适用于 selenium 3.5.3【英文标题】:Action class is not working with selenium 3.5.3 【发布时间】:2018-02-05 07:16:31 【问题描述】:我想将元素从一个地方拖放到另一个地方。所以,我正在使用动作类来实现我的功能。
问题是我的代码执行成功,没有显示任何错误,但功能目标没有实现。
我在 firefox 和 chrome 浏览器中尝试了相同的代码,但在两个浏览器中都出现了同样的问题。
这里是网站url。
我尝试过的代码:
driver.get("http://www.seleniumeasy.com/test/drag-and-drop-demo.html");
driver.manage().window().maximize();
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 1')]"));
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 2')]"));
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 3')]"));
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 4')]"));
WebElement to = driver.findElement(By.xpath("//div[@class='w50 moveleft']//div[@id='mydropzone']"));
String[] array_drag = new String[] "Draggable 1", "Draggable 2", "Draggable 3", "Draggable 4";
for(int i=0; i<array_drag.length; i++)
WebElement from = driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), '"+array_drag[i]+"')]"));
Actions act = new Actions(driver);
act.clickAndHold(from).build().perform();
Thread.sleep(2500);
act.clickAndHold().moveToElement(to).release(to).build().perform();
Thread.sleep(2500);
我也尝试过这个答案,但复制了同样的问题。
Actions act = new Actions(driver);
act.moveToElement(from).moveToElement(to).build().perform();
你也可以看到下面的图片,代码执行成功,没有任何错误。
谁能帮我解决这个问题?
【问题讨论】:
是直接dragAndDrop in actions 不工作? @murali selenium,是的,它也不起作用。 该网站似乎没有按预期运行。我什至不能手动拖放。是网站的问题,而不是您的代码? 网站工作正常,通过手动我可以轻松地在两个浏览器中拖放 webelement。 (火狐和铬) 【参考方案1】:我们也可以这样试试
Action dragAndDrop = builder.clickAndHold(src)
.moveToElement(trg)
.release(trg)
.build();
dragAndDrop.perform();
【讨论】:
感谢您宝贵的时间@murali selenium,我已经尝试过您的代码,但复制了同样的问题。【参考方案2】: Actions builder=new Actions(driver);
builder.clickAndHold(weDragFrom).build().perform();
Thread.sleep(5000);
builder.click(weDragTo).build().perform();
builder.release(weDragTo).build().perform();
` 不幸的是,这对我来说仅适用于 chrome,但不适用于 Firefox 或 IE11。我仍在寻找解决方案来完成这项工作。正如你所说的那样尝试了一切代码运行没有任何错误,也没有任何事情
【讨论】:
感谢您的回答,我已经尝试了您的代码,但对我来说,它在上述任何浏览器中都不起作用。 (Chrome、Firefox、IE11)以上是关于动作类不适用于 selenium 3.5.3的主要内容,如果未能解决你的问题,请参考以下文章