我有几个组合样式框可以自动化。像那些您在其中输入几个字符的框一样,输入,然后打开一个包含相关匹配项的下拉列表,然后选择其中一个。(如果它们是不称为组合)
选择元素不起作用,因为它给出了错误,因为我必须在其中输入几个单词,并且它说输入的是值而不是被选择的。我尝试了发送密钥,睡眠,按下密钥,回车。它为我工作了好几次,但是大多数都因超时错误而失败。虽然我尝试增加时间。
driver.FindElement(By.XPath("//*[@id='root']/div/div[2]/div/form/div/div[5]/div/div/div/div/input")).SendKeys("L");
driver.FindElement(By.XPath("//*[@id='root']/div/div[2]/div/form/div/div[5]/div/div/div/div/input")).Click();
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.PresenceOfAllElementsLocatedBy((By.XPath("/html/body/div[2]/div/div/div/div/div/div[1]"))));
new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.PresenceOfAllElementsLocatedBy((By.XPath("//*[@id='sug-0']"))));
driver.FindElement(By.XPath("//*[@id='sug-0']")).Click();
我什至不确定这是否是处理此类控件的有效方法。有人对此有任何想法吗?干杯!
我得到的错误消息是:测试方法引发异常:OpenQA.Selenium.WebDriverTimeoutException:10秒后超时
已编辑:在框中输入内容后,这是html。它没有列表控件,像这样只有几百个div
<div class="Suggestions-container sugCon" id="sug-list-id__20" role="listbox">
<div id="sug-0" aria-selected="true" role="option">
<div id="sug-1" aria-selected="false" role="option">
<div id="sug-2" aria-selected="false" role="option"> .....