C # Selenium: подождать, пока выпадающий список не загрузит / покажет значение? - PullRequest
0 голосов
/ 17 октября 2018

У меня есть программа на VS, использующая C # с Selenium, которая вводит данные в раскрывающееся текстовое поле.

Но программа получает ошибку, потому что требуется много времени, чтобы отобразить значение, прежде чем она нажмет Enter.

Я также использую методы ElementExists, ElementVisible, ElementClickable.

Есть ли способ подождать, пока в раскрывающемся меню не отобразится значение, прежде чем нажать Enter? (Можно ли дождаться, пока выпадающий список загрузится?)

Я такжеувеличена продолжительность Thread.Sleep, но он слишком противоречив.

Благодарим вас за помощь.Заранее спасибо.

var dropDown= wDriver.FindElements(By.XPath("//input[contains(@aria, 'false')and not(@class)]"));

dropDown.SendKeys(value);

Thread.Sleep(2000);

dropDown.SendKeys(Keys.Enter);

ПРИМЕЧАНИЕ: (Я не использую SelectElement, потому что выпадающий элемент может быть доступен только через Xpath.)

1 Ответ

0 голосов
/ 17 октября 2018

проверили ли вы команду waitForElementPresent.

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[contains(@aria, 'false')and not(@class)]")));

или вы можете использовать ожидание до ожидаемого условия.

wait.until(
    ExpectedConditions.presenceOfNestedElementsLocatedBy(By.xpath(<"//input[contains(@aria, 'false')and not(@class)]">), By.tagName("input"))
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...