2017-10-28 19 views
0

&ドロップをドラッグしようとしましたが、動作しません。Selenium WebDriver 3.6でドラッグアンドドロップできない

ここに私のコードです。

私はこれに多くの時間をかけましたが、まだ動作していません。

クロームバージョン: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 jarをすべて削除し、最新のものを使用しようとしました。 –

+0

@Rao:チームビューアに接続してください。 –

答えて

2

あなたのコードに問題はここにある:あなたが見つけようとしている

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

idを持つ要素ですが、実際にはこのIDは常に異なっています。 2つの異なるブラウザを開いて、同じ要素を調べようとすると、これに気付くでしょう。

にはクラス名「ドラッグ・デモ製品はJQX-RC-すべてJQX-ドラッグ可能」を持つすべての要素を見つけ、後のあなたが望む要素を追加しようとすることができます。次の例で

は、すべての要素が追加される。

//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喜んで:) –

関連する問題