Как ждать, пока значение будет в состоянии выбора
Привет, я использую Page Factory, чтобы сохранить все свои локаторы в классе.
@FindBy(xpath="//select[@ng-model='selectedLeadSource']")
WebElement source_of_lead;
public Select getSourceOptions() {
return new Select(source_of_lead);
}
Но я не могу использовать wait, потому что это выдает мне ошибку.
wait.until (ExpectedConditions.elementToBeClickable (onPage.getSourceOptions () selectByValue("Кампания")).);
Ошибка:
Метод elementToBeClickable(By) в типе ExpectedConditions не применим для аргументов (void)
3 ответа
ExpectedConditions.elementToBeClickable принимает либо элемент By, либо веб-элемент. Вы можете использовать 1. elementSelectionStateToBe(По локатору, логическое выделение) или 2. elementSelectionStateToBe(элемент WebElement, логическое выделение)
Ожидание проверки, выбран ли данный элемент.
Use This::WebDriverWait wait = new WebDriverWait (драйвер, 100);
@FindBy (XPath="// выберите [@ нг-модель = 'selectedLeadSource']")
WebElement source_of_lead; Элемент =wait.until(ExpectedConditions.presenceOfElementLocated(source_of_lead));
Выбрать выпадающий = новый Выбрать (элемент); dropdown.selectByValue("Кампания");
Вы не можете использовать методы ожидания при использовании Page Factory. Приведенный ниже код создает неявное ожидание столько секунд, сколько вы хотите использовать. Я использовал 15 в моем примере.
Когда вы инициализируете свой объект страницы, используйте AjaxElementLocatorFactory.
public LoginPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(new AjaxElementLocatorFactory(driver, 15), this);
}