问题标签 [expected-condition]

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 回答
616 浏览

selenium - Selenium (Java) 正确使用 PageFactory 的显式等待

在查看了 selenium 文档之后,我想知道我是否试图错误地实现显式等待。

在文档中,它总是显示识别一个新元素,然后将定义的等待分配给所述元素

在此示例中,创建了一个新元素 firstResult,然后为其分配了定义的等待。

这是必需的吗?应该总是这样吗?

这就是我问的原因。

我正在使用 PageFactory 模型并通过 FindBy 注释定义我的元素,如此处所示。

然后,在同一个类中,我定义了一些方便的方法来使用它们。

所以现在,在我的方便方法中,我应该做这样的事情吗?

我一直在做的事情,也就是我现在要质疑的事情,是放置未直接分配给相关元素的等待语句。

例如,我一直在做这样的事情。

为什么?(这里可能完全错了)

单击按钮后,我需要等待弹出窗口显示一旦出现,我就等待它消失,然后再继续

这是主要问题 这两条等待线是否真的没有做任何事情,因为我没有将它们分配给一个元素?还是它们仍然导致 Web 驱动程序保持到等待指定的条件发生?

0 投票
1 回答
6014 浏览

python - EC.element_to_be_clickable 和 EC.presence_of_element_located to click() 元素之间的区别

间歇性单击元素时出现 TimeoutExceptions。我尝试过显式等待和 time.sleep()。它工作了一段时间,我再次遇到异常。

我想了解它是否是由预期条件引起的。

如果我使用以下条件,是否有助于避免超时异常?

0 投票
1 回答
298 浏览

typescript - 带打字稿的量角器:失败:无法读取未定义的属性“presenceOf”

我正在尝试使用量角器,打字稿等待元素存在。

这是我的代码:

它失败并出现错误:Failed: Cannot read property 'presenceOf' of undefined

有人可以帮我理解这个原因吗?以及如何解决?谢谢

0 投票
1 回答
1124 浏览

python - Selenium 在 Python 中结合多个预期条件

有没有办法将这两个条件组合成一行,或者以任何方式表示如果这两个条件都为真,那么在 Python 中的 Selenium 中只有 click()。

0 投票
1 回答
156 浏览

c# - 微调器的可见性正在获取状态,但在微调器关闭后微调器的不可见性未按预期工作

我正在使用 selenium c# 自动化 Web 应用程序。

登录后,我必须处理出现在主页中的微调器。

我已经明确等待

wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(LocatorSelect(locator, locatorvalue)));

结果正在通过,脚本等待元素可见。

但是在验证微调器可见性之后,我正在验证同一元素的不可见性。

但是即使我给了 10 秒,该元素仍然等待超过 30-40 秒。然后大约 40 秒后它没有抛出任何错误并继续执行脚本而没有任何异常

那么我怎样才能避免那么多等待时间并在微调器从页面中关闭后立即执行脚本。

脚本中的一些观察:

  1. 当我检查 html 时,当元素可见时,我可以看到显示属性的样式是“块”。但是从 UI 中关闭微调器后,我可以看到,xpath 在搜索区域中没有显示任何元素://iframe /parent::body//div[text()='正在加载..']

  2. 出于调试目的,我设置了等待从页面中关闭微调器后可见的元素。然后我可以看到超时异常和 NoSuchElement 异常被触发。

0 投票
0 回答
46 浏览

python - Selenium(带有 EC 和 WebDriverWait)即使存在也无法检测到元素

所以,我在 python 中使用 selenium 和 chromedriver 来自动化一些任务。我需要等待单击按钮时创建的 iframe。问题是当我使用 WebDriverWait 和 EC 等待 iframe 出现时,它会超时。

但是当我使用just进行测试时......

EC.presence_of_element_located((By.XPATH,"//iframe[@id='x'|@id='y'|@id='z']"))

...找到元素。

即使使用..

driver.find_elements_by_xpath("//iframe[@id='x'|@id='y'|@id='z']")

..作品!

我在try-except块中做错了什么以防止元素被发现?

0 投票
1 回答
142 浏览

swift - 在“if”条件和使用未解析标识符“resultViewController”之后预期“{”

当我输入我的代码时,我得到了这 2 个错误。第 119 行:“if”条件和第 121 行:使用未解析标识符“resultViewController”之后的预期“{”

我使用了 if-let 函数的东西,但是我的代码在错误的地方,我错过了什么,还是我什至没有关闭?

在此处输入图像描述

0 投票
1 回答
516 浏览

python - 如何使用预期条件 new_window_is_opened 切换选项卡并使用 Selenium 和 Python 验证页面标题

我正在编写一个测试,它会遍历多个页面,然后验证标题是否正在显示。目前我的测试是在我可以点击一个按钮并打开一个报告的地方。问题是报告在新选项卡中打开,所以我需要我的测试来移动选项卡并验证新选项卡中的标题。

需要验证的标题是“估值”。我做了一个断言来确认标题和我预期的一样

我已经用python编写了下面的代码。它目前在第二行等待失败

我正在使用以下代码行打开一个新选项卡:

0 投票
3 回答
713 浏览

python - 如何在 Selenium Python 中使用 WebDriverWait 修复此语法错误

我是学习 python 的初学者,我的代码有问题。这似乎是一个简单的错误,但我找不到此错误的解决方案。

这是一个代码

问题出在第 6 行。我试图运行代码,但它说“search_box”是无效的语法。有谁知道这个的解决方案?

0 投票
2 回答
69 浏览

c# - Selenium 未能通过测试查找文本,但可以在调试中使用

您好我正在检查元素中的文本以确保其显示预期的文本..

测试失败,因为它说它返回“”,但是当我在调试中运行它时,它会得到正确的文本。我已经添加了一个 thread.sleep(5000) 并且这修复了测试(我不确定为什么?)并获取显示的文本但是有没有更好的方法来做它,因为 id 如果可能的话不喜欢使用睡眠。