问题标签 [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 回答
397 浏览

python - Selenium 将按钮识别为不可点击

我遇到了一个问题,Selenium 说一个按钮即使在禁用时也是可点击的。

我将 Selenium 与一个网站一起使用,在该网站上,您必须先选择一个日期,然后从下拉列表中选择时间段,然后才能单击“预订”按钮并实际执行任何操作。在选择日期和时间段之前,按钮元素是

选择日期和时间段后,按钮变为

我正在尝试使用此代码来等待按钮可点击

但是 Selenium 表示,即使没有选择日期或时间段,并且该按钮完全变灰且无法点击,该按钮也几乎可以在网站加载后立即点击。我已经通过检查从导航到 url 之后和等待按钮可点击之后的时间戳来测试这一点,并且几乎没有延迟。我已经手动尝试了除循环之外的尝试并在两者之间休眠以能够成功单击按钮,但宁愿找出导致此问题的原因。有任何想法吗?

0 投票
1 回答
290 浏览

selenium - 如何获取框架内嵌套框架的总数

Frame_top 的 3 个嵌套帧的快照:

带有 3 个嵌套框架的 Frame_top

代码:

在顶部,您可以看到此页面在框架(frame_top)内有嵌套框架。
使用第 1-3 行,我可以获得每个嵌套框架的文本。但是我无法获得“Frame_top”内的帧数。(第 4-5 行)。
如何获得“frame_top”内的总帧数?提前致谢

0 投票
1 回答
331 浏览

python - 如何通过 Python 正确使用 Selenium 中的 WebDriverWait?

只是想现在这个问题已经解决了,我会添加一个编辑。替换这 2 个 time.sleep() 使我的程序从 180 秒缩短到 30 秒。WebDriverWait 显着改善了运行时。

只是想确定我是否正确设置了 WebDriverWait。这是我的工作脚本,我使用 time.sleep()

简而言之,它通过一个表格,单击一个打开弹出窗口的按钮,从弹出窗口中提取文本,然后关闭所述弹出窗口。我必须等待弹出窗口打开并完全关闭。我目前正在使用 time.sleep(),但我正在尝试切换到 WebDriverWait。这就是我实现它的方式。

但是,上述方法不起作用。我收到这个错误:

如果我返回 time.sleep(),这种情况就消失了,因此我认为我的 WebDriverWait 设置一定不正确。等待是浏览器的打开和关闭,所以我们要等到按钮出现,所以我把按钮本身的xpath放在了WebDriverWait中。这是正确的设置吗?

编辑:谢谢@DebanjanB 的回答。但是,我在尝试删除我的 time.sleep() 时遇到了另一个问题,这就是我目前所拥有的。

上面的 time.sleep() 正在等待弹出窗口打开(来自上一次单击),然后才提取数据。如果我使用下面的#WebDriver 删除 time.sleep,它仍然会向前移动,但由于某种原因 seq_info.text 现在是空白的(它不再找到文本)。我不太明白为什么会这样。这不是单击或按钮,我只是想在从中提取信息之前检查弹出窗口是否打开。

0 投票
1 回答
65 浏览

python - 如何使用 Python 在 iframe 中切换 Selenium 焦点

我无法从网站上的下拉菜单中选择复选框。下拉列表位于 iframe 内,当我尝试切换到 iframe 时,我不断收到TimeoutException消息:。

下面是我正在尝试的代码和 HTML。我是 Python 的新手,所以对此的任何帮助将不胜感激。

Python:

HTML:

0 投票
1 回答
44 浏览

javascript - 选择项目时的任何预期条件?量角器测试

我正在测试一个复选框,我想知道是否有任何预期的条件来等待项目被选中。现在在我的测试中,我正在使用 browser.sleep 10 秒(该复选框需要很长时间才能加载),但这似乎并不好。

谁能帮我?

我有这个:

0 投票
1 回答
1156 浏览

python-3.x - TypeError: find_element() 接受 1 到 3 个位置参数,但给出了 5 个

尝试打开登录页面并登录,此时以结尾的链接server_id=...将可用,这是一个用于编辑我的服务器列表的面板,然后我想单击底部的更新按钮。我使用By正确吗?

完整错误:

0 投票
1 回答
35 浏览

python-3.x - Selenium Python - 输入用户名和密码的更紧凑或 Pythonic 方式?

我需要登录一个网站,并且我已经有了以下代码,它可以正常工作:

现在,用户名和密码被硬编码到程序中,但出于安全原因,我最终会要求用户提供两者。有没有办法让我写的东西更紧凑或更Pythonic?为了我自己的利益,我正在尽可能地接近 PEP8。

0 投票
1 回答
75 浏览

java - 如何使用 Selenium 和 Java 从强标签的兄弟文本节点中提取文本

有以下 52 个页面对象,所有这些对象都具有包含名为“Gideon”的字符串的 Strong 标签。我怎么可能通过 findElements 方法获得所有这些? 在此处输入图像描述

0 投票
1 回答
160 浏览

python - 如何使用 Selenium 和 Python 点击​​启用 GWT 的元素

我作为新手和新手开发人员与 Selenium 一起工作。我尝试解决这个 XPath 但没有结果,这就是我寻求帮助的原因。

因此,我想单击具有动态 id 的复选框,但根据 tittle="Viewers" 找到此复选框并不容易

请注意,在 div 中的复选框右侧有一个完整的复选框列表,我想将其包含在我的测试中。

HTML:

快照;

提供的代码

0 投票
2 回答
751 浏览

python - NoSuchElementException:消息:没有这样的元素:使用 Selenium 和 Python 抓取前 20 名持有者时无法定位元素错误

我尝试在 ERC-20 链上获取令牌的前 20 名持有者。我用那个硒。似乎 xpath 没有加载/没有足够的时间?

我尝试加载此页面: https ://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#balances

我尝试了隐式等待和显式等待。我什至可以看到,当我运行 webdriver 时,侧面是加载的,但它从未找到路径......

显式等待的代码:

错误:

是的,连个消息都没有……

隐式代码:

错误:

所以就像我说的那样,驱动程序似乎没有足够的时间来加载页面,但即使有 20,30,... 秒,他们也找不到路径。

此外,当我从脚本打开的浏览器中复制 xpath 时,我可以找到 xpath。