python - 无法在 Python 中定位元素 - Selenium
问题描述
我从 Python - Selenium 开始,我无法定位登录网站中的元素。我尝试了许多针对此按钮的选项,但没有选项有效(类名、css 选择器、id、名称..)。当我跳过这一步并通过确切的 url 手动进入下一页时,查找、聚焦、将键发送到元素并单击“下一步”按钮没有问题,但这个“欢迎”登录按钮不能完全定位。使用函数“driver.find_element_by_XXX”。
例如:"driver.find_element_by_class_name("login-box-actions").click()" 请问,我在哪里弄错了?
非常感谢,大卫
<div class="login-box-actions">
<a style="cursor: pointer" ng-click="confirmLogin()" class="btn btn-primary btn-block btn-flat ng-binding">Login</a>
</div>
解决方案
它可能会因为找不到元素而失败。为此,您必须等待元素被加载并可以点击。
参考下面的例子,等待元素可点击。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "btn btn-primary btn-block btn-flat ng-binding"))).click()
推荐阅读
- javascript - 如何修复未在 createjs 中的画布上显示的预加载资产?
- angular - 某些元素的角度设置计时器
- stanford-nlp - 字符串与斯坦福 NLP Word 之间的转换
- laravel - laravel webpack mix error where `{{}}` in text
- python - 如何使用 matplotlib 从三个不同的数据帧中绘制条形图?
- r - 这段包含 for 循环和条件的代码如何以矢量化格式重写?
- c# - Unity拖动不起作用,对象从指针移开
- performance - 使 Linq 查询更高效(.Net Core)
- javascript - 发布请求速度和延迟导致实时音频信息丢失
- javascript - Anki Javascript 代码适用于 Mac Desktop 和 AnkiDroid,但不适用于 Anki(Ipad/Iphone 版本)