我正在使用selenium webDriver和Java,并通过在selenium定位时移动到List中的每个元素来寻找查找元素的解决方案。我正在寻找特定于“ChromeDriver”的解决方案,因为Chrome驱动程序使用点/坐标,每次我的脚本都无法执行拖放从一个位置识别到另一个位置的元素列表。
场景描述:我的应用程序有两个表(T1和T2),每个表行下有'li和ui'列表作为子项。我需要将'T2'行/行的'web元素'拖放到'T1'行下的匹配web元素(在拖放期间,视口中可见或不可见 - 但我使用了moveTo()方法)
问题:当我在Chrome中执行脚本时,点击当前视口“T2”中不存在的网页元素并将其拖动到“T1”中匹配的“父网页元素”。但是在第一次运行之后,由于“先前”标识的元素位置发生了变化,网页对齐中断以及随后的拖放操作失败。
我尝试了多种方法,例如,单击'T2元素1并移动并执行拖放操作,使用javascript执行程序在视口中显示元素等。但每次UI对齐都会中断。
我想知道,如果有人使用MoveTo()函数自定义实现'Selenium FindElements()方法'?
类似的东西:
@Override
public List<WebElement> findElements(By arg0) {
List<WebElement> moveAndFind = null;
try{
WebElement firstIndex = Driver.findElement();//Move to first matching element of By argument.
moveAndFind.add(firstIndex); // Collect all the matching elements in the web page by capturing the updated location - specific to Chrome driver
}catch(WebDriverException ex){
ex.printStackTrace();
}
return moveAndFind;
}
答案 0 :(得分:0)
要专门回答你的问题,你不能override
FindElement
的实现(或者,因为我不熟悉Java实现,我不知道什么)。< / p>
现在,为了解决您的问题,您有以下几种选择: