首页 > 解决方案 > 无法在 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>

标签: pythonseleniumauthenticationbuttontarget

解决方案


它可能会因为找不到元素而失败。为此,您必须等待元素被加载并可以点击。

参考下面的例子,等待元素可点击。

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()

推荐阅读