必須在文本框中輸入文本,列表會自動擴展,並且需要選擇第一個項目。但由於例外而失敗; OpenQA.Selenium.NoSuchElementException。我嘗試使用wait.Until(),但面臨同樣的錯誤。OpenQA.Selenium.NoSuchElementException - C#Selenium
try
{
IWebElement cityList = driver.FindElement(By.XPath("value"));
MouseClick(driver, cityList);
}
catch (OpenQA.Selenium.NoSuchElementException ex)
{
IWebElement cityList = driver.FindElement(By.XPath("value"));
MouseClick(driver, cityList);
}
編輯
HTML代碼:
<input name="ctl00$cphmain$txtCity" type="text" maxlength="50" id="ctl00_cphmain_txtCity" class="mandsearchtxtbox" onkeypress="javascript:return ValidateInputAlphabeticValuesOnly(event);" onblur="javascript:return checkItemMsg(this)" style="width:180px;" autocomplete="off">
<div class="AutoExtenderHighlight">AMANDOLUWA</div>
代碼與wait.Until()
WebDriverWait wait1 = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until<IWebElement>((d) =>
{
try
{
return d.FindElement(By.XPath("//*[@id='citydiv']/div"));
MouseClick(driver, driver.FindElement(By.XPath("//*[@id='citydiv']/div")));
}
catch (OpenQA.Selenium.NoSuchElementException ex)
{
return null;
MouseClick(driver, driver.FindElement(By.XPath("//*[@id='citydiv']/div")));
}
});
編輯2
爲WebDriverException(按鈕)HTML代碼
請添加您試過的代碼以及相關的html。 – Guy
添加了html和代碼。我不確定wait.until()代碼是否正確。 –