2012-10-11 12 views
5

Trochę utknąłem w problemie i nie jestem w stanie go naprawić Muszę uzyskać dostęp do n-tego obrazu na mojej stronie, który pojawia się w tabeli wewnątrz HTML. I trzeba kliknąć na obrazek, aby przejść do następnego ekranu odpowiednio dla każdego wierszaSelenium WebDriver Znajdź nth element

Próbowałem różne rozwiązania pod warunkiem tutaj, ale ponieważ pracuję z findElement (przez) składni nie jestem w stanie uruchomić mojego kodu z tymi udzielanie pomocy

Mój kod to:

public void editUser(String userName) 
{ 
    System.out.println("in editUser 1"); 
    int row = getCellRow(table, userName); 
    System.out.println("in editUser 2"); 

    WebElement edit = driver.findElement(By.xpath("//*[@class='grid']/tbody/tr[2]/td[8]/a[1]/img")); 

    System.out.println("in editUser 3"); 
    edit.click(); 
    System.out.println("in editUser 4"); 
    clickButton(closeButton); 
} 

błąd jest:

No such element exception. Unable to locate element: {"method":"xpath", selector"://img[@title='User Management'])[2] 

Selen IDE mógł rozpoznać mój żywioł, ale nie selenu internetowej kierowcę! Prosimy o poradę:

+1

postu kod HTML fragment tutaj. – Santoshsarma

+0

Daj nam przykład tego, co próbujesz znaleźć. – Arran

+0

Santoshsarma: Dodałem tutaj fragment kodu html. Proszę zobaczyć i sdvice – user1726783

Odpowiedz

2

Ponieważ fragment kodu HTML nie jest kompletnym widokiem, nie jest w stanie ustalić, czy użyte xpath jest poprawne. Z tym, co przedstawiono tutaj, może sugerować następujące iść do przodu

  1. Spróbuj użyć xpather (firefox plugin), aby sprawdzić, czy XPath wykorzystywane zwraca prawidłowy obraz, który próbujesz kliknij.
  2. Jeśli powyższy stan się powiedzie, mogą wystąpić problemy z synchronizacją obrazu, aby załadować obraz , zanim program Webdriver spróbuje go znaleźć.
8

Użyj [], aby odwołać się do elementu n-ty na przykład

WebElement edit = driver.findElement(By.xpath("(//*[@class='grid']//img)[n]")); 

gdzie n oznacza numer elementu

+1

Czy coś wygląda nie tak z tym lokalizatorem? Otrzymuję nieoczekiwany limit czasu za pomocą WebDriverWait.' locator = (By.XPATH, '(.//input [@ type = text]) [1]) "') – Phillip

Powiązane problemy