我正在尝试拖放其中的自动化测试,它应该将项目从网格拖动到另一个网格。我运行以下代码并取得了不同的成功:
当我运行此代码时,如果移动的对象只是一个标签,它将起作用,但如果它是标签和文本框,它将失败(或者更确切地说,测试将通过,但实际上该对象不会被移动) 我认为网格可能没有时间为更大的对象正确加载?:
Actions builder = new Actions(driver);
Point point = driver.FindElement(By.XPath(destination)).Location;
Thread.Sleep(100);
builder.DragAndDropToOffset(element, point.X, point.Y).Build().Perform();
如果我运行此代码,它有时会在调试模式下使用更大的对象,但不是所有时间。我经常在StaleElementReferenceExeption
上获得dragAndDrop.Perform();
。
Actions builder = new Actions(driver);
IAction dragAndDrop = builder.ClickAndHold(element)
.MoveToElement(target)
.Release(target)
.Build();
dragAndDrop.Perform();
我测试了不同的代码变体,但这几乎是有效的。