问题标签 [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.
selenium - 使用 Selenium 抓取 React 表
我编写了一个代码,用于使用 python selenium 对 HTML React 表进行修饰。但它无法捕获表中的值(仅 DOM 元素)。这是网站https://nonfungible.com/market/history/decentraland?filter=saleType%3D&length=10&sort=blockTimestamp%3Ddesc&start=0 这是我的代码:
它什么也不打印。
感谢您的帮助!
python - “TypeError:'str'对象不可调用”通过Python在Selenium中使用WebDriverWait for link_text
这是我在 Stack Overflow 上的第一篇文章。我一直在浏览和搜索关于 SO 的这个问题的所有可能答案,我想此时我应该问一个问题,因为我已经在这堵墙上好几天了。我目前正在使用 Python 中的 Selenium 进行网络抓取项目。我已经抓取了一个网站,目前正在第二个网站上,我遇到了一个看似棘手的问题。以下代码运行良好,页面https://www.spd.de/standpunkte/上没有错误:
同时,以下代码TypeError: 'str' object is not callable
在页面https://www.spd.de/standpunkte/familie/上引发错误:
错误发生就行了WebDriverWait(driver, 12).until("Mehr erfahren").click()
。根据我迄今为止的研究,我认为具体问题是这一行中的某些东西被解释为一个str
对象,因此无法调用。在我看来,有两个问题:
我看不出有任何理由让这条线产生错误,而顶部的代码,抓取同一个网站,但在不同的页面上,没有问题。我检查并确保页面上没有被点击的隐藏元素。
我不知道该行中的什么被视为
str
对象。全线?只有一部分?如果有,是哪一部分?加剧这一点的是,我无法真正打破界限以查看有关它的任何信息。两者都print(WebDriverWait(driver, 12).until("Mehr erfahren").click())
最终print(type(WebDriverWait(driver, 12).until("Mehr erfahren").click()))
给出错误。我能够确定该.click()
方法不是问题,因为我尝试将行设置为等于一个变量,然后与该变量进行交互,但这仍然会在与以前相同的行上产生错误;它甚至从未与该.click()
方法达成一致。
有什么方法可以确定该行的哪一部分被解释为str
?或者这根本就是问题所在?
这一直让我发疯,因此将不胜感激!
python - selenium.common.exceptions.TimeoutException 错误通过 Selenium 和 Python 使用 WebDriverWait 和 expected_conditions
我遇到了 EC2 服务器实例的上述异常。我的脚本在本地系统上使用任何版本的 firefox 和 geckodriver 的 Ubuntu 和 Mac 操作系统都可以正常工作。但是 EC2 ubuntu 18.04.01 版本出现上述错误,在此我也尝试过升级和降级 firefox 和 geckodriver 版本,但仍然无法正常工作。任何人都可以帮助我提出建议和解决方案。
python - 如何使用 Python Selenium 对列表中的一个元素使用显式等待?
我的 HTML(不知何故)包含两个具有相同 ID 的元素。其中只有一个是可点击的,为了识别我想要点击的那个,我正在使用:
现在我想将其转换为显式等待。如果只有一个元素具有该 ID(或任何选择器),我会这样做:
如何转换该语句以识别具有该 ID 的第二个项目,而不是第一个?另一种方法是使用元素的完整 xpath,但我认为找到具有 ID 的第二个元素会更稳定。
python - Selenium 等待所有类元素
我正在尝试等待驱动程序等待,直到找到同一类的所有元素。
例如:
如果类是foo
我尝试:
我认为这只等待该类中第一个出现的元素。任何人都知道我怎么能等到该类的所有元素都找到。
python - 等待父标签是否可以确保使用 Selenium 完全加载子标签?
如果我在 Selenium 上使用 WebDriverWait 功能时等待父标签加载,我可以确保加载子标签吗?
代码示例:
HTML:
在这种情况下,当测试标签完成加载时,我想知道是否可以保证h1标签的标签也被加载。
如果没有子标签(示例代码中的h1标签),也就是说,有些页面有称为h1的子标签,有些页面结构相同,但没有称为h1的子标签。
我不喜欢这种延迟,即使我知道如果我将 WebDriverWait 用于我的子标签,就不会有标签。所以,就像上面的问题一样,我打算等待父标签的加载,然后处理它。
正如我所想,如果将 WebDriverWait 应用于父标签并不能保证加载子标签,我该如何实现我想要的目标?
谢谢你的帮助。
python-3.x - 使用 Python 等待元素中的文本成为 Selenium 中的数字
一个动态生成的网站有这样一个元素:
一段时间后,它会用这样b
的随机数填充元素:
我想等待生成该数字,现在我想出了一个等待特定数字的代码:
b
但如果元素中出现任何值(不仅仅是 42),我想继续。该值将始终是一个数字,所以我只需要检查文本是否为空。
expected_conditions类的列表,因此您无需谷歌。
python - 等待第 N 个元素的可见性
在单击该元素之前,我正在使用等待元素功能的可见性。但是,HTML 中有多个元素可以满足我对元素使用的搜索,这就是我想要的。如何使用等待可见性来等待多个元素中的第 N 个元素变得可见?
例如,这是我的代码的一部分,其结果是等待多个元素中的第一个元素的可见性,然后单击它:
我希望能够等待第一个、第二个、第三个等 Start_Element 可见,然后单击它。
我知道如果我只想点击第 N 个元素,我可以做这样的事情,最后的 [n] 决定我点击哪个元素:
但是,我想不通的是如何将其合并到等待可见性功能中,以等待第 n 个元素的可见性,然后再单击它。
谢谢!
typescript - How exactly do Protractor's ExpectedConditions work (related to behaviour on a non-angular site)?
In order to click a button I have to wait for an element to slide into the visible viewport. This works reliably:
However, since I've learned that using "browser.sleep()" is considered bad practice, I want to achieve this using protractor's ExpectedConditions:
After waiting 4 seconds, i get the following error:
After a lot of trial and error I've figured out that using only "EC.presenceOf" will do the trick. However, as soon as I chain it with "EC.visibilityOf" or "EC.elementToBeClickable", or use either alone, the test stops for 4 seconds and fails at that point.
To me, that behaviour doesn't seem to make sense at all. Especially since that element is present since the page loaded, it's just not visible and clickabe yet (as it has to slide into view first).
Is my general understanding of ExpectedConditions, or their behaviour on a non-angular site, wrong? What am I missing here?
python - 如何按文本查找元素,但它是硒中的数字
我想通过文本获取一个元素,但它是数字?我猜?例如,
它包含一个数字,因此此代码不起作用
我怎样才能找到这个元素?