无法定位 Python 中的元素 - Selenium

Cannot target the element in Python - Selenium

我从 Python - Selenium 开始,我无法定位登录网站中的元素。我尝试了很多针对此按钮的选项,但没有任何选项有效(class 名称、css 选择器、ID、名称..)。当我跳过这一步并通过 url 手动进入下一页时,查找、聚焦、向元素发送键并单击 "Next" 按钮没有问题,但是这个 "welcome" 登录按钮不能完全瞄准。 使用函数 "driver.find_element_by_XXX".

例如: "driver.find_element_by_class_name("登录框操作").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>

您可以尝试使用不同的标识符来查找元素。硒支持:

find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector

您需要点击 <a> 元素而不是 div:

login_button = driver.find_element_by_xpath("//a[text()='Login']")
login_button.click()

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

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

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