Seleneium WebDriver - 获得不同的异常

本文关键字:异常 WebDriver Seleneium | 更新日期: 2023-09-27 18:37:05

我正在使用网格模式运行硒测试。每当我无法在页面中找到元素时,我都会收到以下异常

"对远程 WebDriver 服务器的 URL 的 HTTP 请求 http://localhost:4444/wd/hub/session/5fe58b67-491c-4b72-9a3a-a6dc790cc29d/element 60 秒后超时。

我期待一个例外,就像没有找到这样的元素一样。但是我超时了。任何关于此的指示都会很有帮助

代码如下

try
{
    switch (findBy.ToLower())
    {
        case "classname":
            webElement = driver.FindElement(By.ClassName(findByValue));
            break;
        case "cssselector":
            webElement = driver.FindElement(By.CssSelector(findByValue));
            break;
        case "id":
            webElement = driver.FindElement(By.Id(findByValue));
            break;
        case "linktext":
            webElement = driver.FindElement(By.LinkText(findByValue));
            break;
        case "name":
            webElement = driver.FindElement(By.Name(findByValue));
            break;
        case "partiallinktext":
            webElement = driver.FindElement(By.PartialLinkText(findByValue));
            break;
        case "tagname":
            webElement = driver.FindElement(By.TagName(findByValue));
            break;
        case "xpath":
            webElement = driver.FindElement(By.XPath(findByValue));
            break;
    }
}
catch (Exception e)
{
    return null;
}

非常感谢

Seleneium WebDriver - 获得不同的异常

Pankaj Katiyar 是正确的,因为您正在使用显式等待。 Selenium也带有隐式等待,它表示等待无论以秒为单位多长时间,如果元素仍然没有出现,请继续前进。

您也可以尝试使用等到预期条件,并将它们添加到所有开关案例语句中。