我在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访问。)
答案 0 :(得分:0)
您是否已检查过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"))
)