2016-05-06 5 views
0

Ich habe eine Webseite, in der ich versuche, eine Maus Hover durchzuführen .. Es gibt ein Element mit dem Namen "Entity Records", wenn Sie die Maus zeigt ein Menü angezeigt. In diesem Menü muss ich auf ein Element namens Create New record klicken.NoSuchElementException beim Ausführen von Mousehover-Aktion in Selenuim

I 3 verschiedene Reihe von Codes versucht haben, aber es ist nicht für mich arbeiten ..

1. One:

WebElement el = driver.findElement(By.xpath("\\....")); 
    action.moveToElement(el).build().perform(); 
    Actions builder = new Actions(driver); 
    builder.moveToElement(driver.findElement(By.cssSelector("..."))).click().build().perform(); 

2. ein:

WebElement entityrecordsmenu = driver.findElement(By.cssSelector("...")); 
    Actions builder = new Actions(driver); 
    builder.moveToElement(entityrecordsmenu).build().perform(); 
    WebElement createnewrecord = driver.findElement(By.cssSelector("...")); 
    createnewrecord.click(); 

3. ein:

Actions action2 = new Actions(driver); 
    WebElement ele = driver.findElement(By.xpath("...)); 
    action2.moveToElement(ele).build().perform(); 
    Actions build2 = new Actions(driver); 
    build2.moveToElement(driver.findElement(By.xpath("..."))).click().build().perform(); 

1. und 2. Code macht die Maus schwebend fein, aber es nicht auf das Menüelement klicken. Kann mir jemand den richtigen Weg vorschlagen?

Antwort

0

Nach dem Mouse-Hover versuchen Sie, etwas warten, um das Element angezeigt zu bekommen, und klicken Sie dann auf.

WebElement entityrecordsmenu = driver.findElement(By.cssSelector("...")); 
    Actions builder = new Actions(driver); 
    builder.moveToElement(entityrecordsmenu).build().perform(); 
    //provide wait here to display dropdown 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

    //some time implicity wait may fails then use thread.sleep 
    //Thread.sleep(3000); 
    WebElement createnewrecord = driver.findElement(By.cssSelector("...")); 
    createnewrecord.click(); 

    //if still above once does not work you can try 
    Actions builder1 = new Actions(driver); 
    builder1.moveToElement(entityrecordsmenu).click(driver.findElement(By.cssSelector("..."))).build().perform(); 

Danke, Murali

+0

Danke so viel .. Das funktionierte !! –

+0

Gut zu wissen .. danke :) –

Verwandte Themen