2016-10-27 2 views
0

У меня есть несколько WebElements таким образом, что выполнение следующейПочему этот WebElement не возвращает полный xpath?

List<WebElement> customers = driver.findElements(By.xpath("//div[@id='Customers']/table/tbody/tr")); 
System.out.println(customers.size()); 

напечатает .

Итак почему следующий код

List<WebElement> customers = driver.findElements(By.xpath("//div[@id='Customers']/table/tbody/tr")); 

for (WebElement customer : customers) { 
    if (customer.getText().equals("SQA")) { 
     WebElement test = customer; 
     System.out.println(test); 
     break; 
    } 
} 

печати xpath: //div[@id='Customers']/table/tbody/tr и не на самом деле включают конкретный индекс пути? Вышеуказанный xpath абсолютно бесполезен; Я ожидаю, где находится SQA.

xpath: //div[@id='Customers']/table/tbody/tr[4]

ответ

2

Я думаю, он просто печатает локатор, используемый для поиска элемента. Если вы хотите получить индекс, просто измените свой код на

List<WebElement> customers = driver.findElements(By.xpath("//div[@id='Customers']/table/tbody/tr")); 
for (int i = 0; i < customers.size(); i++) 
{ 
    if (customers.get(i).getText().equals("SQA")) 
    { 
     System.out.println(i); 
     break; 
    } 
}