我发现了问题。我在所有测试服中都使用一种方法来等待加载消息关闭。但是它尝试使用jquery,但并非我的应用程序中的所有页面都使用它。
因此,Selenium放弃尝试在60秒后执行jquery并返回超时错误,但是此错误不会破坏Selenium驱动程序,只有FindElements才返回空列表。当它尝试返回空列表时,所有驱动器都坏了。
原始方法:
public void WaitLoadingMessage(int timeout){ while (timeout > 0) { try { var loadingIsVisible = _js.Executescript("return $('#loading-geral').is(':visible');").ToString(); if (loadingIsVisible.ToLower() == "false") break; Thread.Sleep(1000); timeout -= 1000; } catch (Exception ex) { if (!ex.Message.ToLower().Contains("$ is not defined")) throw; } }}和更正:
public void WaitLoadingMessage(int timeout){ while (timeout > 0) { try { var loadingIsVisible = _js.Executescript("return $('#loading-geral').is(':visible');").ToString(); if (loadingIsVisible.ToLower() == "false") break; Thread.Sleep(1000); timeout -= 1000; } catch (Exception ex) { if (!ex.Message.ToLower().Contains("$ is not defined")) throw; break; } }}


