按钮单击会抛出异常:
OpenQA.Selenium.WebDriverTimeoutException
我尝试使用wait.Until(),但没有工作。
wait1 = new WebDriverWait(driver, TimeSpan.FromMinutes(2));
IWebElement okBtn;
okBtn = wait1.Until<IWebElement>((d) =>
{
try
{
okBtn = wait1.Until<IWebElement>((e) =>
{
try
{
IWebElement element = e.FindElement(By.XPath("//*[@id='btnOk']"));
if (element.Displayed)
{
return element;
}
}
catch (NoSuchElementException) { }
catch (StaleElementReferenceException) { }
return null;
});
MouseClick(driver, okBtn);
}
catch (WebDriverTimeoutException) { }
catch (WebDriverException) { }
return null;
});
MouseClick(driver, okBtn);
相同的HTML代码:
<input type="button" value="OK" id="btnOK" onclick="ButtonClick(event);" class="btnnormal" accesskey="x" style="margin: 5px; width: 65px;">
答案 0 :(得分:0)
在我看来,就像你的FindElement找到了与你在HTML代码中显示的元素不同的元素。
尝试将其更改为:
e.FindElement(By.XPath("//*[@id='btnOK']"));
答案 1 :(得分:0)
试试这段代码:
wait1.Until(ExpectedConditions.ElementToBeClickable(By.Id("btnOK")));
okBtn = driver.FindElement(By.Id("btnOk"));
MouseClick(driver, okBtn);