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

使用C#Selenium Webdriver时忽略异常等待wait.untill()函数

仉梓
2023-03-14
问题内容

为了检查是否存在Element和clickble,我尝试编写一个布尔方法,该方法将等待使用C#selenium的webDriverWait启用和显示该元素,如下所示:

webDriverWait等待=新的webDriverWait(驱动程序,timeSpan.fromSeconds(60));

Wait.untill(d => webElement.enabled()&& webElement.displayed());

如果以上条件没有发生,我希望该方法返回“
false”。问题是我抛出了异常。如果抛出异常,如何忽略noSuchElementException和timeOutException之类的异常?我尝试使用try
catch块,但是它没有帮助,并且引发了异常。


问题答案:

WebDriverWait实现DefaultWait类,该类包含公共void IgnoreExceptionTypes(params Type []
exceptionTypes)方法。

您可以使用此方法来定义在单击之前等待元素启用时要忽略的所有异常类型。

例如 :

WebDriverWait wdw = new WebDriverWait(driver, TimeSpan.FromSeconds(120));
wdw.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(ElementNotVisibleException));

在前面的代码中,wait将忽略NoSuchElementException和ElementNotVisibleException异常



 类似资料:
  • 问题内容: 今天,当我使用Selenium WebDrive时,出现错误。我的平台是mac osx。这是我的异常日志。 我不知道为什么会这样。我的Firefox路径是默认路径。谢谢您的帮助!! 问题答案: WebDriver使用端口7054(“锁定端口”)作为互斥体,以确保我们不会同时启动两个Firefox实例。您创建的每个新实例将在启动浏览器之前等待互斥体,然后在浏览器打开后立即释放互斥体。 因

  • Selenium C#在抛出超时异常之前等待的最大显式超时是多少? 有时我们正在测试的应用程序变得非常慢,最多需要4分钟才能加载。我想添加一个等待时间,这样它最多会等待5分钟。 我已经尝试过这个代码 但是它在2分钟左右抛出超时异常。

  • 我实际上有三个问题: Selenium WebDriver如何实现此 因为我们不能给无限睡眠的线程一个负值。 有没有更好的方法来实现无限等待? 我们在SeleniumWebDriver文档中看到了这一点

  • 我正试图将图像上传到firebase存储,但调用该函数时,未执行wait以获取url。我错过了什么? 看看这个其他主题,我发现问题可能是“然后”,但我如何设置代码以等待url? 异步/等待/然后飞镖/颤振 谢谢

  • 问题内容: 我正在运行以下简单代码: 但是当我运行它时,它会打印 实际上python线程会忽略我的+键盘中断而无法打印。为什么?此代码有什么问题? 问题答案: 尝试 没有对的调用,主要过程是过早地跳出该块,因此不会被捕获。我的第一个想法是使用,但这似乎阻塞了主进程(忽略KeyboardInterrupt),直到完成。 导致线程在主进程结束时终止。