Поправка: так не работает только при содании внутреннего класса. Выдает: Exception in thread "main" java.lang.RuntimeException: java.lang.InstantiationException: Test$SearchResults
Пример нерабочего кода:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class Test {
class SearchResults {
@FindBy(className = "g")
private List<WebElement> list;
}
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.navigate().to("http://google.com");
driver.findElement(By.name("q")).sendKeys("selenium");
driver.findElement(By.name("q")).submit();
SearchResults searchResults = PageFactory.initElements(driver, SearchResults.class);
System.out.println(searchResults.list.size());
searchResults.list.get(0).findElement(By.tagName("a")).click();
}
}
Подскажите как сделать лучше?