2017-10-28 123 views
0

我想拖动&下降,但它不工作。无法拖放在硒WebDriver 3.6

这是我的代码。

请帮忙,我已经在这上面花了这么多时间,但它仍然没有工作。

Google Chrome版本62.0.3202.75
ChromeDriver:2.33
硒:3.6

public class Drag_And_Drop { 
static String baseURl="https://www.google.com"; 
static WebDriver driver; 

@BeforeMethod 
public void openBrowser() {  
    System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/drivers/chromedriver.exe"); 
    driver=new ChromeDriver(); 
    driver.get(baseURl); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS); 
} 

@Test 
public void verifyCount() { 

    WebElement searchBox = driver.findElement(By.xpath(".//*[@id='lst-ib']")); 
    searchBox.sendKeys("jqwidget drag and drop"); 
    searchBox.sendKeys(Keys.ENTER);  

    WebElement link = driver.findElement(By.linkText("jQuery DragDrop, DragDrop plug-in, Drag and Drop ... - jQWidgets")); 
    link.click();  

    driver.switchTo().frame(0); 

    WebElement source = driver.findElement(By.xpath(".//*[@id='jqxWidgete3128591f541']")); 
    source.click(); 

    WebElement target = driver.findElement(By.xpath(".//*[@id='cart']"));  

    Actions actions = new Actions(driver); 
    actions.dragAndDrop(source, target).build().perform(); 
} 

@AfterMethod 
public void closeBrowser() { 
     driver.quit(); 
} 
} 
+0

在相同的试验合格之前(<3.6)和具有问题版本3.6? – Rao

+0

@Rao:没有代码也没有在任何其他版本上运行,经过这么多时间之后,我删除了FF,Chrome,Selenium jars的所有以前的版本,现在正在尝试使用最新的版本。 –

+0

@Rao:如果您连接团队查看器,这将非常有帮助。 –

回答

2

在你的代码的问题是在这里:

WebElement source = driver.findElement(By.xpath(".//*[@id='jqxWidgete3128591f541']")); 

你正在努力寻找的元素与id,但实际上,这个id总是不同的。如果您打开2个不同的浏览器并尝试检查相同的元素,您会注意到这一点。

您可以尝试找到类名为“draggable-demo-product jqx-rc-all jqx-draggable”的所有元素,并在添加所需的元素之后。

在以下例子中,所有的元素被添加:

//WebElement source = driver.findElement(By.xpath(".//*[@id='jqxWidgete3128591f541']")); 
    WebElement source = driver.findElement(By.xpath("//div[@id='shop']")); 
    List<WebElement> listDraggableElement=source.findElements(By.xpath("//div[@class='draggable-demo-product jqx-rc-all jqx-draggable']")); 

    WebElement target = driver.findElement(By.xpath(".//*[@id='cart']")); 
    Actions actions = new Actions(driver); 
    for(WebElement el: listDraggableElement) 
    { 
     System.out.println(el.getText()); 
     actions.dragAndDrop(el, target).build().perform(); 
    } 
+0

非常感谢,你已经救了我很多天,因为我已经尝试了很多次,付出了很多努力,但没有做到。再次感谢,现在工作正常。谢谢... –

+0

@AnubhavJain高兴地帮助:) –