当前位置: 首页 > 面试题库 >

WebDriver和C#-NoSuchElement异常

宋岳
2023-03-14
问题内容

我有以下代码从给定列表中选择一个选项,它通常可以正常工作,但有时会失败,并在第二个if上出现NoSuchElement异常。我的印象是,如果找不到元素,它将再次回到循环中。我相信解释很简单……有人能启发我吗?

    public static void selectFromList(String vList, String vText, IWebDriver driver)
    {
        for (int sec = 0; ; sec++)
        {
            System.Threading.Thread.Sleep(2500);
            if (sec >= 10) Debug.Fail("timeout : " + vList);
            if (driver.FindElement(By.Id(ConfigurationManager.AppSettings[vList])).Displayed) break;
        }
        new SelectElement(driver.FindElement(By.Id(ConfigurationManager.AppSettings[vList]))).SelectByText(vText);
    }

问题答案:

好吧,我是Java专家,所以我将不提供代码,而是提供算法:

  • 您的代码(我认为)应该检查是否显示了该元素,如果没有显示,请再等待2,5秒
  • 失败的原因是,有时显示元素需要的时间超过前2.5秒。在这种情况下,检查是否显示该元素将引发异常

因此,基本上,您应该在for循环中执行一些异常处理,并捕获该异常,而不执行任何操作。在Java中,它是由tryand
catch块完成的。但是因为我不了解C#,所以您必须找出用这种语言完成的工作



 类似资料:
  • 问题内容: 我有一个简单的方法,可将命令打印到屏幕上,扫描用户的输入,然后将其作为字符串返回。如果用户输入无效,它将通知用户并再次询问。该方法运行完美,但是我的讲师提到我们应该始终关闭资源,因此我回过头来添加了close方法,现在无论用户输入什么,每次调用该方法时都会收到NoSuchElementException。这是代码… 例外总是指向用户输入以scan.nextLine()。trim()开头

  • 我已经分享了下面的代码,请让我知道更正 错误: 线程“main”org . open QA . selenium . nosuchelementexception中出现异常:无法找到类名= = lst lst-TBB SBI PPS的元素(警告:服务器未提供任何stacktrace信息)命令持续时间或超时:10.45秒

  • 问题内容: 我已经找到了这段代码,无法找出解决方法。在运行代码时,为什么不提示用户输入而不是Java确定没有输入?错误跟踪如下。 这是错误- 问题答案: 简单的答案是当您关闭扫描仪时- 基础输入流也会关闭:http : //docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#close() 要修复此问题,请在主菜单中创建一次:

  • 问题内容: 为了检查是否存在Element和clickble,我尝试编写一个布尔方法,该方法将等待使用C#selenium的webDriverWait启用和显示该元素,如下所示: webDriverWait等待=新的webDriverWait(驱动程序,timeSpan.fromSeconds(60)); Wait.untill(d => webElement.enabled()&& webEle

  • 我使用selenium firefox driver 3.3.1、selenium java 3.3.0、gecko driver 0.14和firefox 52。当我运行代码时,会出现“您的连接不安全”页面,但当我手动打开它时,它将毫无错误地打开。这是我得到的错误消息 线程“main”org.openqa.selenium.webdriverexception:位于sun.reflect.nat

  • 我在windows 7 32位操作系统上使用visual studio 2010 C#和IEDRiverServer.exe Webdriver Version2.42。 简而言之,我找到一个元素并单击它,操作完成得很好(单击该元素并导致弹出窗口(不是新窗口)关闭),但代码似乎等待了一段时间,然后在click()行抛出一个错误(WebDriverException)。 它几乎就像它没有意识到它成功