Il frammento di codice di seguito funziona bene, ma sto avendo un po 'di problemi con la linea wait.until()
:Come utilizzare il selenio 2 PageFactory init Elements con Wait.until()?
wait.until(new ElementPresent(By.xpath("//a[@title='Go to Google Home']")));
Funziona ma voglio inviare il mio PageFactory
WebElement
homePageLink
invece:
wait.until(new ElementPresent(homePageLink));
Is c'è un modo per farlo?
Queste nuove funzionalità del Selenio 2 sono state messe alla prova e non riesco a trovare molta documentazione.
Grazie.
public class GoogleResultsPage extends TestBase {
@FindBy(xpath = "//a[@title='Go to Google Home']")
@CacheLookup
private WebElement homePageLink;
public GoogleResultsPage() {
wait.until(new ElementPresent(By.xpath("//a[@title='Go to Google Home']")));
assertThat(driver.getTitle(), containsString("Google Search"));
}
}
public class ElementPresent implements ExpectedCondition<WebElement> {
private final By locator;
public ElementPresent(By locator) {
this.locator = locator;
}
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
io uso SlowLoadableComponent invece. Mi consente di inserire un ritardo tra isLoaded() e load() in modo che la pagina continui a riprovare fino a quando la pagina non viene caricata. – djangofan