如何等待值处于可选状态

时间:2018-04-30 10:54:26

标签: selenium page-factory

您好我正在使用Page Factory将我的所有定位器保留在一个类中。

@FindBy(xpath="//select[@ng-model='selectedLeadSource']")
    WebElement source_of_lead;
    public Select getSourceOptions() {
        return new Select(source_of_lead);
    }

但我无法使用等待,因为它给我一个错误。

wait.until(ExpectedConditions.elementToBeClickable(onPage.getSourceOptions()selectByValue("运动&#34)));

错误:

ExpectedConditions类型中的方法elementToBeClickable(By)不适用于参数(void)

3 个答案:

答案 0 :(得分:0)

使用此:: WebDriverWait wait = new WebDriverWait(driver,100);

@FindBy(的xpath = “//选择[@ NG-模型= 'selectedLeadSource']”)

WebElement source_of_lead; 元素= wait.until(ExpectedConditions.presenceOfElementLocated(source_of_lead));

选择dropdown = new选择(元素); dropdown.selectByValue( “活动”);

答案 1 :(得分:0)

ExpectedConditions.elementToBeClickable接受By或web元素。 你可以使用1. elementSelectionStateToBe(通过locator,boolean selected) 或者2. elementSelectionStateToBe(WebElement元素,选择布尔值)

期望检查是否选择了给定元素。

答案 2 :(得分:0)

使用Page Factory时无法使用等待方法。下面的代码会创建一个隐式等待,无论您想要使用多少秒。我在我的例子中使用了15个。

初始化页面对象时,请使用AjaxElementLocatorFactory。

public LoginPage(WebDriver driver) {
       this.driver = driver;
        PageFactory.initElements(new AjaxElementLocatorFactory(driver, 15), this);
}