O le a le eseʻesega i le va o le faʻatali faatali, manino le faʻatali ma le lelei faʻatali i WebDriver? Faʻapitoa lava, o le a le fesoʻotaʻiga i le va WebDriverWait ma FluentWait?
Nei o faʻataʻitaʻiga o le faʻaaogaina taʻitasi auala faʻatali i WebDriver ma Java.
An faatali faatalitali o le taʻu atu i le WebDriver e palota le DOM mo se aofaʻiga taimi peʻa taumafai e suʻe se elemeni poʻo ni elemeni pe a latou le vave maua. O le le faʻamautuina seti o 0. A maeʻa ona setiina, o le faʻatali faatalitali ua setiina mo le ola o le WebDriver mea faʻataʻitaʻiga.
Faʻataʻitaʻiga o le faʻaaogaina faʻatali faatalitali
WebDriver driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get('http://somedomain/slow_loading_url'); WebElement dynamicElement = driver.findElement(By.id('dynamicElement'));
O afea e tatau ai ona tatou faʻaalia faʻatali lemu?
E masani lava, e le fautuaina e faʻaaoga ni faʻatali le mautonu, pe a mafai ona tatou faʻaaogaina ni faʻatali manino poʻo ni faʻatali lelei.
An faatali manino o se tulafono e te faʻamatalaina e faʻatali mo se tuʻutuʻuga tulaga e tupu ae leʻi faʻaauau luma i le code. WebDriverWait e ala i le le masani ona valaʻau le ExpectedCondition i le 500 milliseconds seʻia oʻo i le taimi e toe foʻi manuia ai.
Faʻataʻitaʻiga o le faʻaaoga faʻatali manino
WebDriver driver = new FirefoxDriver(); driver.get('http://somedomain/someurl'); WebElement dynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id('dynamicElement')));
O afea e tatau ona tatou faʻaalia ai faʻatali manino?
E masani ona matou faʻatali faʻatali manino pe a fai e umi se taimi e ave ai se elemeni. Na matou faʻaaogaina faʻatali manino foi e siaki le meatotino a le CSS o se elemeni (iai, kilikiina. Etc.) e mafai ona suia i le Ajax talosaga.
A o faʻaaogaina le FluentWait faataitaiga, e mafai ona matou faʻamaoti mai:
Faʻataʻitaʻiga o le faʻaaogaina FluentWait
// Waiting 30 seconds for an element to be present on the page, checking // for its presence once every 5 seconds. Wait wait = new FluentWait(driver)
.withTimeout(30, SECONDS)
.pollingEvery(5, SECONDS)
.ignoring(NoSuchElementException.class); WebElement foo = wait.until(new Function() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id('foo')); } });
O afea e tatau ai ona tatou faʻaaogaina FluentWait?
A e taumafai e faʻataʻitaʻi le i ai o se elemeni e ono aliali mai pe a maeʻa x sekone / minute.
WebDriverWait o se vasega vasega o FluentWait. I le FluentWait e tele atu au filifiliga e teuteuina, faʻatasi ai ma le maualuga o le taimi faʻatali, pei o vaitaimi palota, tuusaunoa e le amanaʻia ai etc.
Ma, nai lo le faʻatali ona faʻaaoga lea findElement
:
WebDriverWait wait = new WebDriverWait(driver, 18); wait.until(ExpectedConditions.elementToBeClickable(By.linkText('Account'))); WebElement element = driver.findElement(By.linkText('Account')); element.sendKeys(Keys.CONTROL); element.click();
e mafai ona matou faʻaaogaina:
WebElement element = wait.until(
ExpectedConditions.elementToBeClickable(By.linkText('Account')));
Faʻamatalaga atili: