社区首页 >问答首页 >使用c# selenium webdriverWait wait.untill()函数时忽略异常

使用c# selenium webdriverWait wait.untill()函数时忽略异常
EN

Stack Overflow用户
提问于 2017-03-29 12:04:52
回答 2查看 9K关注 0票数 10

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

代码语言:javascript
代码运行次数:0
复制
webDriverWait wait = new webDriverWait(driver, timeSpan.fromSeconds(60));

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

如果上述情况没有发生,我希望方法返回'false‘。问题是我会被抛出异常。如果抛出noSuchElementException和timeOutException等异常,我如何忽略它们?我尝试过使用try catch块,但是它没有帮助,并且抛出了异常。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-29 19:56:56

WebDriverWait实现了包含public void IgnoreExceptionTypes(params Type[] exceptionTypes)方法的DefaultWait类。

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

例如:

代码语言:javascript
代码运行次数:0
复制
WebDriverWait wdw = new WebDriverWait(driver, TimeSpan.FromSeconds(120));
wdw.IgnoreExceptionTypes(typeof(NoSuchElementException), typeof(ElementNotVisibleException));

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

票数 7
EN

Stack Overflow用户

发布于 2017-03-29 13:37:40

如果您等待元素是可点击的,它也将被显示和启用。你可以简单的做

代码语言:javascript
代码运行次数:0
复制
public bool IsElementClickable(By locator, int timeOut)
{
    try
    {
        new WebDriverWait(Driver, TimeSpan.FromSeconds(timeOut)).Until(ExpectedConditions.ElementToBeClickable(locator));

        return true;
    }
    catch (WebDriverTimeoutException)
    {
        return false;
    }
}

它将等待60年代,并在找到元素后单击它。如果没有找到元素,并且在超时过期后不能单击等等,它仍然会抛出异常。

编辑:将其封装在一个基于OPs注释的函数中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43103129

复制
相关文章
selenium&appium中的三种等待方式---基于python
我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait()、隐式等待implicitly_wait()、强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别
测试开发社区
2019/09/20
1.6K0
Selenium系列(六) - 详细解读强制等待、隐式等待、显式等待的区别和源码解读
https://www.cnblogs.com/poloyy/category/1680176.html
小菠萝测试笔记
2020/06/09
4.3K1
Python+Selenium笔记(十):元素等待机制
(一) 前言 突然的资源受限或网络延迟,可能导致找不到目标元素,这时测试报告会显示测试失败。这时需要一种延时机制,来使脚本的运行速度与程序的响应速度相匹配,WebDriver为这种情况提供了隐式等待和显式等待两种机制。 (二) 隐式等待 一旦设置隐式等待时间,就会作用于这个WebDriver实例的整个生命周期(对所有的元素查找都生效),设置隐式等待时间后,Webdriver会在一定时间内持续检测和搜寻DOM,以便于查找一个或多个不是立即加载成功并可用的元素。隐式等待的默认时间是0. WebDriver使用
free赖权华
2018/04/27
2.9K0
python selenium2示例 - 同步机制
前言 在使用python selenium2进行自动化测试实践的过程中,经常会遇到元素定位不到,弹出框定位不到等等各种定位不到的情况,在大多数的情况下,无非是以下两种情况: 1、有frame存在,定位前,未switch到对应的frame内 2、元素未加载完毕(从界面看已经显示),但DOM树还在load状态或在加载js 那对于这类情况,怎么解决呢? 通俗的讲法: 等待。 高大上点:解决自动化测试代码与浏览器加载渲染之间的同步问题。 下面我们分段讲述各种处理方式: 一 强制等待 这种方式简单粗暴直接有效,不
苦叶子
2018/04/04
8770
python selenium2示例 - 同步机制
Selenium等待:sleep、隐式、显式和Fluent
Selenium等待页面加载在Selenium自动化测试中起着重要的作用。它们有助于使测试用例更加稳定,增强健壮性。Selenium提供多种等待,根据某些条件在脚本执行相应的等待,从而确保Selenium执行自动化测试时不会导致脚本失败。
FunTester
2020/09/27
2.7K0
自动化测试如此容易!多语言自动化测试框架 Selenium 编程(C#篇)
Selenium 是功能强大的自动化测试工具集,是支持 Web 浏览器自动化的一系列工具和库的总括项目,一共包括以下三个项目:
痴者工良
2023/03/11
3.8K0
自动化测试如此容易!多语言自动化测试框架 Selenium 编程(C#篇)
爬虫之Selenium的等待及定位
关于昨天的机器学习文章,希望能够亲自码一下,将会学到很多东西,如果觉得很好,欢迎转发,谢谢! 有关翻译贡献,可点击公众号右下角联系我,备注:翻译,或者昨日文章的阅读原文,pr到仓库中来! 关于今天的爬虫文章,则是一篇之前练习爬虫碰到的问题解决策略,希望可以帮助大家,下面一起来看吧,欢迎留言与转发!
公众号guangcity
2019/09/20
9770
爬虫之Selenium的等待及定位
您需要了解的有关Selenium等待方法
等待可以帮助用户在重定向到其他网页时解决问题。这可以通过刷新整个网页并重新加载新的Web元素来实现。有时,也可能会有Ajax调用。因此,在重新加载网页并反映Web元素时可以看到时间滞后。
用户7466307
2020/06/24
1.7K0
Selenium
元素定位可以根据id,class等属性定位,也可以根据标签名等信息进行定位。使用定位函数后会返回一个WebElement类或一个WebElement类的列表,用于接下来的操作。
TomatoCool
2023/07/31
2280
Python 爬虫(四):Selenium 框架
Selenium 是一个用于测试 Web 应用程序的框架,该框架测试直接在浏览器中运行,就像真实用户操作一样。它支持多种平台:Windows、Linux、Mac,支持多种语言:Python、Perl、PHP、C# 等,支持多种浏览器:Chrome、IE、Firefox、Safari 等。
Python小二
2020/08/18
1.1K0
Python 爬虫(四):Selenium 框架
app自动化测试(Android)--显式等待机制
WebDriverWait 通常与 until 和 util_not 结合使用,Java 与 Python 用法相同。
霍格沃兹测试开发Muller老师
2023/01/03
6920
深入selenium三种等待方式使用
from selenium.webdriver.support.wait import WebDriverWait
小小咸鱼YwY
2019/09/11
5.2K0
Selenium2+python自动化38-显示等待(WebDriverWait)
前言: 在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种方法隐式等待方法随时一定程度上节省了很多时间。 但是一旦页面上某些js无法加载出来(其实界面元素经出来了),左上角那个图标一直转圈,这时候会一直等待的。 一、参数解释 1.这里主要有三个参数: class WebDriverWait(object):driver, timeout, poll_frequency 2.driver:返回浏览器的一个实例,这个不用多说 3.timeout:超时的总时长 4.po
上海-悠悠
2018/04/08
1.3K0
Selenium2+python自动化38-显示等待(WebDriverWait)
使用c#和selenium获取网页
selenium 和 c# 的应用之一是创建一个网络爬虫,它可以从网页中抓取数据进行分析。网络爬虫是一种访问网页并从中提取信息的程序。 Selenium 是一个框架,它允许我们自动执行浏览器操作,例如单击、键入或导航。 C# 是一种编程语言,可用于编写网络爬虫的逻辑和功能。为避免被 Web 服务器阻止,我们可以使用代理 IP 地址来掩盖我们的身份和位置。要访问网页上的元素,我们可以使用通过 id、名称、类或 xpath 获取元素等方法。
jackcode
2023/06/12
8890
使用c#和selenium获取网页
IntelliJ IDEA 使用Subversion时忽略文件夹
IntelliJ IDEA 在使用Subversion进行版本管理时,忽略某个文件或者文件夹的操作方法如下:
程序新视界
2022/11/30
2.7K0
IntelliJ IDEA 使用Subversion时忽略文件夹
Selenium异常集锦
当测试工程师执行Selenium测试自动化用例时,可能会遇到很多陌生的Exception。在执行测试脚本时,有些Exception可能不是很常见,因为测试用例锁依赖的测试框架拥有足够健壮性以应对此类场景。这些未被预期的场景被称为异常场景,在使用Selenium进行自动浏览器测试时,通常来讲会遇到很多异常场景。
FunTester
2020/10/29
5.4K0
web自动化07-元素等待
        概念: 定位元素时,如果能定位到元素则直接返回该元素,不触发等待; 
似小陈吖
2023/10/17
1640
Python:Selenium中三种等待方法说明
强制等待:不管浏览器元素是否加载完成,程序都得等待3秒,3秒一到,继续执行下面的代码。
Python学习者
2023/06/18
6450
python selenium 打开chrom 忽略ssl错误
chromedriver = "chromedriver.exe" options = webdriver.ChromeOptions() options.add_argument('--ignore-certificate-errors') browser = webdriver.Chrome(chromedriver, chrome_options=options) browser = webdriver.Chrome(chromedriver)
用户5760343
2022/01/09
1K0
点击加载更多

相似问题

WebDriverWait不会忽略异常

21

Selenium WebDriverWait抛出异常

10

Selenium c#:如何从WebDriverWait().Until()中的函数捕获异常

112

Selenium C#,WebDriverWait超时

14

Selenium WebDriverWait不抛出超时异常

1122
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文