如何在PageObjectModel的PageFactory中添加显式等待?

thread.sleep()在下面的代码中添加了硬代码等待。如何使用显式等待。我想等到“用户名”

WebElement出现。我的程序运行正常。我已经写了测试用例。

package com.pol.zoho.PageObjects;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.PageFactory;

import org.openqa.selenium.support.ui.WebDriverWait;

public class ZohoLoginPage {

WebDriver driver;

public ZohoLoginPage(WebDriver driver)

{

PageFactory.initElements(driver, this);

}

@FindBy(xpath=".//*[@id='lid']")

public WebElement email;

@FindBy(xpath=".//*[@id='pwd']")

public WebElement password;

@FindBy(xpath="//*[@id='signin_submit']")

public WebElement signin;

public void doLogin(String username,String userpassword)

{

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

email.sendKeys(username);

password.sendKeys(userpassword);

signin.click();

}

}

回答:

,如果您希望该元素通过某些JavaScript加载并且可能已经不存在于页面中,则可以对普通的定位器工厂使用

Explicit Wait 支持,如下所示: * __

  • 代码块:

        package com.pol.zoho.PageObjects;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.PageFactory;

import org.openqa.selenium.support.ui.ExpectedConditions;

import org.openqa.selenium.support.ui.WebDriverWait;

public class ZohoLoginPage {

WebDriver driver;

public ZohoLoginPage(WebDriver driver)

{

PageFactory.initElements(driver, this);

}

@FindBy(xpath=".//*[@id='lid']")

public WebElement email;

@FindBy(xpath=".//*[@id='pwd']")

public WebElement password;

@FindBy(xpath="//*[@id='signin_submit']")

public WebElement signin;

public void doLogin(String username,String userpassword)

{

WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(ZohoLoginPage.getWebElement()));

email.sendKeys(username);

password.sendKeys(userpassword);

signin.click();

}

public WebElement getWebElement()

{

return email;

}

}

您可以在如何对PageFactory字段和PageObject模式使用显式等待中找到详细的讨论。

以上是 如何在PageObjectModel的PageFactory中添加显式等待? 的全部内容, 来源链接: utcz.com/qa/399815.html

回到顶部