gpt4 book ai didi

java - Selenium 拖放到不可见的位置

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:12 26 4
gpt4 key购买 nike

我正在尝试在 selenium 中实现拖放。这是我想出的一个新场景,直到我将源拖动到放置位置并按住它,放置位置才可见。它看起来像这样: enter image description here

我尝试了一些事情,例如

场景1:

Actions builder = new Actions(driver);
builder.clickAndHold(curSourceElement).build().perform();
builder.moveToElement(curTargetElement).build().perform();
builder.release(curTargetElement).build().perform();

场景 2:

builder.clickAndHold(curSourceElement).build().perform();
builder.moveToElement(curTargetElement).clickAndHold(curTargetElement).moveByOffset(0,500).release(curTargetElement).build().perform();

以及许多其他方法,例如移动到放置位置并添加等待,但它们似乎都不起作用。

当放置位置不可见时,是否有其他方法可以进行拖放。

任何帮助将不胜感激。

谢谢。

最佳答案

我的第一次尝试看起来像这样:

Size currentWinSize = driver.Manage().Window.Size;
driver.Manage().Window.Maximize(); //Remove window size as a concern

Actions builder = new Actions(driver);
builder.clickAndHold(curSourceElement);
builder.moveToElement(curTargetElement).Build().Perform();
sleepResponsibly(2000); //Give handler time to react. After working replace
// sleep with wait on ExpectedConditions
builder.release(curTargetElement).build().perform();
driver.Manage().Window.Size = currentWinSize; // Put window size back

public void sleepResponsibly(int timeMillisecond){
try{
Thread.sleep(timeMillisecond);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
throw new RuntimeException(ex);
}
}

顺便说一句,我使用 Window.Maximize() 运行所有测试,但包含了该步骤,以防您不这样做。此外,如果悬停事件处理程序弹出打开一个新元素作为目标,您将需要等待该新元素可单击,然后在该新目标上释放。只有您知道您的代码是如何设计的。

关于java - Selenium 拖放到不可见的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com