我正在尝试以下代码来测试Selenium 3.0中的拖放并发现代码无效,这意味着它没有显示任何错误,也没有提供预期的结果。
我在selenium 2.53中尝试了相同的代码并且它正在运行。请有人检查我的代码并告诉我,如果我错过了什么。
Selenium 3.0
浏览器:Mozilla 2.52
package dynamicXpath;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
public class refermeprobI {
public static void main(String[] args) throws InterruptedException{
System.setProperty("webdriver.gecko.driver", "D:\\Drivers\\geckodriver.exe");
FirefoxProfile profile = new FirefoxProfile();
profile.setEnableNativeEvents(true);
WebDriver driver = new FirefoxDriver(profile);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("https://the-internet.herokuapp.com/drag_and_drop");
Actions act = new Actions(driver);
WebElement src = driver.findElement(By.xpath("//*[@id='column-a']"));
WebElement dst = driver.findElement(By.xpath("//*[@id='column-b']"));
act.dragAndDrop(src, dst).build().perform();
System.out.println(driver.findElement(By.xpath("//*[@id='column-b']/header")).getText());
}
}
答案 0 :(得分:0)
您还可以尝试以下操作:
act.clickAndHold(src).moveToElement(dst).release(src).build().perform();
这适用于dragAndDrop()
没有的某些情况。
答案 1 :(得分:0)
我检查了你的代码。一切都很好,除非您使用Selenium 3.0.0然后需要设置所需的功能。我还用Selenium最新的3.4检查了你的代码。如果您使用Selenium 3.4,则无需设置所需功能。我使用的是Firefox 52。 我希望这些信息可以帮助您了解遇到的问题。 谢谢