首页 > 解决方案 > C# + Selenium:自动化等待

问题描述

下面的代码不起作用,它总是在第 2 行抛出 No such element 异常。

wait.IgnoreExceptionTypes(typeof(NoSuchElementException));      
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath(element)));

标签: c#seleniumwaitexplicit

解决方案


这里可能有2个问题:

  1. 您正在尝试在元素可见之前找到该元素,因为您可以通过执行来等待该元素

    wait.Until(ExpectedConditions.ElementExists(By.XPath(element)));
    

    其中 element 是您要查找的元素的 XPath。

  2. 您没有使用正确的 XPath 找到元素。如果您使用的是绝对 XPath,请避免这样做,因为虽然绝对 XPath 可以更快地找到元素,但如果 DOM 结构发生更改,您的路径可能不再有效。


推荐阅读