2013-01-31 22 views
5

Tôi đang cố gắng lưu một cột các phần tử vào danh sách từ một cấu trúc bảng với biểu thức bên dưới mà trên đó tôi cần thực hiện thao tác nhấp để xác thực các nút đó.Làm thế nào để lưu trữ danh sách các WebElements từ một bảng vào một danh sách trong khi thực hiện selenium webdriver?

Mã số:

Tôi có giá trị cho Total_element = 37.

for(int start=0; start <= Total_element; start++) 
{ 
    int startn=start+1; 
    System.out.println(start); 
    List <WebElement> Element1 = new ArrayList<WebElement>() ; 

    try{ 
     Element1.add(Naveen.findElement(By.xpath(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img"))); 
    }catch(Throwable t){ 
     System.out.println(t); 
    } 
    System.out.println(Element1.get(start)); 
    System.out.println("The element" + start + "is :"+ Element1.get(start)); 
    Naveen.findElement(By.xpath(Element1.get(start).toString())).click(); 
    Naveen.findElement(By.xpath(".//*[@id='action']/a/span/div")).click(); 
    System.out.println("The element" + start + "is :"+ Element1); 
    Thread.sleep(5000); 
} 

Lỗi:

khi tôi cố gắng để lấy các yếu tố từ danh sách tôi nhận được kết quả như sau:

[[FirefoxDriver: firefox on XP (586a8f1f-f784-4ae7-adf5-5f920dfad8e0)] -> xpath: .//*[@id='data_grid']/tbody/tr[1]/td[2]/a/img]

hơn nữa mà tôi đang nói hoạt động của tôi là không.

+0

u có thể dán đầy đủ stacktrace..I nghĩ có điều gì đó sai với xpath hoặc nó không thể xác định được phần tử –

Trả lời

1

thực tế những gì đang xảy ra có nghĩa là, các kiểu trả về của

driver.findElemnt(By.xpath("xpath")); 

là WebElement. Trong khi bạn thêm mã trên vào ArrayList, nó sẽ thêm WebElement. Các WebElement chứa các thông tin về

Driver Used - FirefoxDriver
Browser session value - 586a8f1f-f784-4ae7-adf5-5f920dfad8e0
locator used - xpath: .//*[@ id = 'data_grid']/tbody/tr [ 1]/td [2]/a/img]

Nếu bạn cố truy xuất Phần tử web, nó sẽ trả về tất cả những thứ đó. Đó là những gì xảy ra trong trường hợp của bạn và bạn đang nhận được lỗi trong khi cố gắng bấm.

Bạn chỉ có thể thêm Xpath locator một mình trong ArrayList. Nó sẽ hoạt động.

Hãy thử điều này

ArrayList<String> Element1 = new ArrayList<String>(); 
Element1.add(".//*[@id='data_grid']/tbody/tr["+startn+"]/td[2]/a/img"); 

driver.findElement(By.xpath(Element1.get(`startn`))).click(); 
1

Thay vì:

Naveen.findElement(By.xpath(Element1.get(start).toString())).click(); 

thử:

Element1.get(start).click(); 
Các vấn đề liên quan