2017-10-28 2 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 jars의 모든 이전 버전을 삭제 한 후 최신 버전을 사용하려고합니다. –

+0

@Rao : 팀 뷰어에 연결하면 큰 도움이 될 것입니다. –

답변

2

코드의 문제는 여기에 있습니다 : 당신은을 찾기 위해 노력하고있다

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

요소가 있지만 실제로는이 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 도와 줘서 고맙습니다. :) –