问题标签 [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 投票
2 回答
843 浏览

angular - 无效的元素状态:元素必须是用户可编辑的,以清除它尝试单击并使用 Selenium 在下拉切换中插入日期的错误

我正在尝试单击此日历并使用 selenium 自动插入日期,但出现以下错误:

无效元素状态:元素必须是用户可编辑的才能清除它。

HTML 片段

代码片段

如果我手动设置日期,这是 HTML:

可能网站改变了,但现在我不知道如何设置这个值。任何帮助将不胜感激。

谢谢

0 投票
5 回答
94016 浏览

python - Selenium - 等到元素出现、可见且可交互

我有一个 Selenium 脚本(Python),它单击回复按钮以使类anonemail出现。类 anonemail 出现所需的时间各不相同。因此,我必须使用 sleep 直到元素出现。

我想等到课程出现而不是使用睡眠。我听说过等待命令,但我不知道如何使用它们。

这是我迄今为止所拥有的:

0 投票
1 回答
59 浏览

python - 如果用户已经注册,我如何签入 Python Selenium?(Magento 云)

初始情况:

目前我已经在我们的项目中定义了几个测试用例,包括在 Magento 云环境中的登录和注销。

我目前使用 Chrome Webdriver 进行此测试。

Python 和最新的 Selenium 版本。

问题情况: 我想检查一个用户是否已经注册。

到目前为止我所拥有的:

我目前正在检查用户是否要登录,如果是相应的用户“Frank”,则会触发断言。

但我相信有更好的解决方案?

问题

是否有更明智的解决方案如何在 Python/Selenium 中进行查询?

0 投票
2 回答
287 浏览

python - “TypeError:'str'对象不可调用”通过Python + Selenium在expected_conditions中传递定位器

我收到以下错误:

回溯(最后一次调用):文件“[redacted]”,第 69 行,在 wait.until(EC.element_to_be_clickable(By.ID("RptViewer_ctl09_ctl04_ctl00_ButtonLink"))) TypeError: 'str' object is not callable

这是我认为导致问题的代码部分:

我认为导致问题的原因是“ID('RptViewer_ctl09_ctl04_ctl00_ButtonLink')”部分,但我不确定这是否属实,我不确定如何解决它。非常感谢任何指导。

谢谢!

0 投票
2 回答
426 浏览

c# - Selenium 中与 WebElement 交互的最佳等待策略是什么

我刚开始为一个新的 WebApplication 实现一些 UItests,并注意到有时当我等待元素存在时测试会失败,而在等待元素可见时相同的测试会成功。

所以我的问题是,是否有固定的顺序使 web 元素变为“现有”、“可点击”、“可见”、“显示”等,或者这完全取决于开发人员如何实现网页或 JS 框架哪个用于实现应用程序?

0 投票
1 回答
78 浏览

c# - 当我尝试单击可扩展区域中的按钮时出现 OpenQA.Selenium.NoSuchElementException

我正在尝试为https://www.booking.com/编写测试,只是为了我自己的经验。因此,我遇到了一个问题:尝试更改表单中的客人数量时,我不断收到 NoSuchElementException。

我已经尝试过关于 SOF 的任何建议:

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(120);

new WebDriverWait(driver, TimeSpan.FromSeconds(200)).Until(condition: ExpectedConditions.ElementIsVisible(By.XPath("//*[@id=\"xp__guests__inputs - container\"]/div/div/div[1]/div/div[2]/button[2]")));

并尝试使用 XPath Axes 访问我需要的元素

所有这些策略似乎都不适合我。

我的代码:

我正在测试的代码:

0 投票
1 回答
427 浏览

python - 已解决 Selenium:控制台 js 代码有效,但 python -> TypeError:document.getElementById(...) null 错误单击 iframe 中的元素

我的 Selenium 代码登录到一个网站,然后到达一个带有 iframe 中存在的按钮的页面。检查 chrome 中的元素并使用浏览器的控制台,我找到了 iframe:

然后我找到了该元素并能够单击它:

在我的 python 代码中,我插入了:

但是,错误是"TypeError: document.getElementById(...) is null".:(

[解决方案] 想通了!只需在 js 脚本中添加一个“返回”!感谢大家!旧版:

固定版本:

0 投票
2 回答
299 浏览

java - 如何等到属性具有不同的值?

当我们在屏幕上没有等待时

但是当等待部分正在进行时,显示部分就消失了,所以它变成:

我添加的片段:

但它没有用

0 投票
4 回答
1725 浏览

python - 如何使用 Python Selenium 在输入字段中输入数值?

我有一个脚本将值写入网页,并且所有值都写入,除了一个不断抛出以下错误的字段:( 在此处输入图像描述 屏幕截图在其他类似问题中提供了 b/c 许多评论说这不可能在网络上发生页。)“请输入一个数值。”

这是我的代码:

众所周知,如果我不输入2.78值作为 astring WebDriver会引发错误。但是我的页面需要一个数值。我被困住了。

我用谷歌搜索并没有找到可用的答案。如果你正在使用,似乎Java有一种setAttribute方法可以使用,但如果你正在使用Python,你必须弄清楚一些事情。

例如,这里的问题看起来很有希望,但我找不到String或如何导入它以使其工作。还有一些其他更老的问题是关于执行的java,但我没有让它们发挥作用。

我在这里有页面源 HTML: https ://drive.google.com/open?id=1xRNPfc5E65dbif_44BQ_z_4fMYVJNPcs

0 投票
1 回答
140 浏览

java - 如何处理在新选项卡中自动打开的新窗口?

我的测试代码做thomething,然后自动打开新标签并在新标签中自动打开新窗口(不是标签)。

当我使用此代码时:driver.getWindowHandles()它返回 2 个选项卡 ID 而不是 3 个选项卡 ID。

在此处输入图像描述