OpenQA.Selenium.WebDriverTimeoutException-C#Selenium(点击按钮)

OpenQA.Selenium.WebDriverTimeoutException-C#Selenium(点击按钮),c#,selenium,C#,Selenium,单击按钮会引发异常: OpenQA.Selenium.WebDriverTimeoutException 我尝试使用wait.Until(),但不起作用 wait1 = new WebDriverWait(driver, TimeSpan.FromMinutes(2)); IWebElement okBtn; okBtn = wait1.Until<IWebElement>((d) => { try { okBt

单击按钮会引发异常:

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);
wait1=新的WebDriverWait(驱动程序,TimeSpan.FromMinutes(2));
IWebElement okBtn;
okBtn=等待1.直到((d)=>
{
尝试
{
okBtn=等待1.直到((e)=>
{
尝试
{
IWebElement元素=e.FindElement(By.XPath(“/*[@id='btnOk']”);
如果(显示的元素)
{
返回元素;
}
}
catch(NoSuchElementException){}
catch(StaleElementReferenceException){}
返回null;
});
鼠标单击(驱动程序,okBtn);
}
catch(WebDriverTimeoutException){}
捕获(WebDriverException){}
返回null;
});
鼠标单击(驱动程序,okBtn);
相同的HTML代码:

<input type="button" value="OK" id="btnOK" onclick="ButtonClick(event);" class="btnnormal" accesskey="x" style="margin: 5px; width: 65px;">

在我看来,FindElement查找的元素与HTML代码中显示的元素不同

尝试将其更改为:

e.FindElement(By.XPath("//*[@id='btnOK']"));
请尝试以下代码:

wait1.Until(ExpectedConditions.ElementToBeClickable(By.Id("btnOK")));
okBtn = driver.FindElement(By.Id("btnOk"));
MouseClick(driver, okBtn);

这里我放置了错误的id。如果id也正确,它会出现超时异常。
if(element.displated)
是否计算为True?或者该元素是以某种方式隐藏的?并非在所有情况下该元素都是可见的。在使用该元素时,它会抛出,
NoTouchElementException
StaleElementReferenceException
。因此,我为此添加了
try-catch
块。但后来我遇到了
TimeoutException
@testingqwerty按钮是否可以手动点击?TimeoutException处于等待状态。直到此处表示此按钮在两分钟内不可单击。是
超时。异常
此处表示此按钮在两分钟内不可单击。