问题标签 [implicitwait]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10363 浏览

selenium - 在 selenium 中使用隐式等待

我是初学者。我理解等待基本上是做什么的,但我对互联网上的不同教程如何放置和解释它感到困惑。例如,在下面的代码中,它被放置在加载 URL 之前。那么,是只等待加载 URL 还是等待查找元素或两者兼而有之?如果我在我的 try 块中使用一次隐式等待,它是否适用于我在代码中执行的每个元素搜索,这是真的吗?

0 投票
5 回答
4422 浏览

java - 用显式等待替换隐式等待(selenium webdriver & java)

如何用显式等待替换这种隐式等待?

驱动程序=新的C​​hromeDriver(功能);

driver.manage().deleteAllCookies();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

这在之前的方法中使用。我能够替换代码中的所有 Thread.sleep(),但我不确定该怎么做。

0 投票
2 回答
2473 浏览

selenium - 隐式等待和显式等待之间的内部工作区别是什么

显式等待示例

隐式等待示例

假设 myDynamicElement 在第 6 秒可见,因此在这两种情况下,驱动程序将等到第 6 秒并且控制将移至连续的书面语句,我想了解在这种情况下隐式等待和显式等待有何不同?他们如何在内部工作?

0 投票
2 回答
2962 浏览

java - Selenium 隐式和显式等待,未找到超时异常元素

我是 selenium 的新手(但经验丰富的 java 开发人员)。

我正在使用类似下面的东西:

其中 pWait 是:

但是,当我运行测试用例时,出现以下错误:

我认为它应该在抛出这个异常之前等待至少 15 秒。从上面的日志看来,它似乎只在 4 毫秒内引发了异常。我可以在控制台上看到,一旦它到达那条线,它就会抛出异常。

我将隐式等待设置为 0 并使用显式等待。

我在这里有什么遗漏吗。

此外,在显式和隐式等待中,是达到那么多时间还是精确那么多时间,例如,如果我将隐式等待设置为 10 秒,那么这是否意味着等待确切的 10 秒或等待最多 10 秒(如果找到元素然后继续, 即使元素 founf 在第 6 秒)

显式等待也一样吗?

请帮忙

0 投票
3 回答
2801 浏览

selenium - 隐式 vs 显式 vs Fluent 等待

隐式,显式,流利的等待有什么区别?

如果我们在隐式等待中设置 10 秒并且在 10 秒之前,则在 3 秒内只有元素被定位。

到时候会发生什么?它将等待 10 秒或继续进行。

0 投票
1 回答
2731 浏览

selenium - 硒隐式等待不起作用

这是我第一次使用 selenium 和无头浏览器,因为我想使用 ajax 技术抓取一些网页。

效果很好,但是在某些情况下加载整个页面需要太多时间(尤其是当某些资源不可用时),所以我必须为 selenium 设置一个超时时间。

首先我尝试了set_page_load_timeout()set_script_timeout()但是当我设置这些超时时,如果页面没有完全加载,我将不会获得任何页面源,如下面的代码:

所以我尝试使用隐式等待和条件等待,如下所示:

这次我得到了我想要的内容。但是,它需要很长时间(40+秒),这意味着我设置的2秒超时根本不起作用。

在我看来,似乎driver.get()调用结束,直到浏览器停止加载页面,只有在那之后下面的代码才能工作,你不能终止get()调用,否则你什么也得不到。但这与 selenium 文档非常不同,我真的想知道错误在哪里。

环境:OSX 10.12, selenium 3.0.9 with FireFox & GoogleChrome Headless(均为最新版本。)

- - 更新 - -

感谢您的帮助。我将代码更改如下,WebDriverWait()单独使用,但仍然存在调用持续很长时间的情况,远远超过我设置的超时时间。想知道我是否可以在时间结束时立即停止页面加载?

这是测试中的终端输出:

根据代码,这意味着driver.get()调用需要 44 秒才能完成调用,这是出乎意料的,我想知道我是否误解了无头浏览器的行为?

0 投票
3 回答
3827 浏览

java - 如何通过 Selenium 正确配置隐式/显式等待和 pageLoadTimeout?

我目前有以下设置,但我不确定我的等待(隐式和 pageLoadTimeout)是否正常工作。这是正确的实施吗?通过将它放在@Before("@setup") 中,它是否适用于每个场景或步骤定义运行?每次我打电话给@Given、@When..etc 时,司机会相应地等待吗?

为什么要给后面的wait分配一个WebElement,WebElement元素接收到什么?这是正确的实施吗?-

0 投票
1 回答
548 浏览

c# - 如何在 Selenium 中结合隐式和显式超时?

我正在使用带有隐式超时的 Selenium ChromeDriver:

在我的一项测试中,我想用明确的超时来覆盖它。在读取属性之前,我明确地等待找到该元素:

我希望这需要 120 秒才能尝试找到元素,但它会在 5 秒后超时。

0 投票
0 回答
55 浏览

c# - Selenium C# ImplicitWait 不会等待元素加载

我创建了一个自定义方法来隐式等待元素加载,然后我在自定义 click 方法中使用它,如下所示:

然后我将它附加到我单击的任何元素上,以确保它始终轮询 DOM 以确保元素已加载,但它似乎并没有等待某些特定元素加载。

我正在搜索这个元素:

但它总是立即发出以下异常:

我已经尽一切努力让它等待这个元素加载,但我似乎无法弄清楚。奇怪的是,如果我调试它......它会找到元素。

任何帮助将不胜感激!

0 投票
3 回答
15833 浏览

python - Python & Selenium:driver.implicitly_wait() 和 time.sleep() 之间的区别

是的,我知道两者都习惯于等待某个指定的时间。

硒:

Python:

这两者有什么区别吗?