无法以Python Selenium中的元素为目标

2024-05-14 21:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我从Python-Selenium开始,我不能在登录网站中定位元素。我尝试了许多针对这个按钮的选项,但没有任何选项(类名、css选择器、id、名称..)。当我跳过这一步,通过精确的url手动进入下一页时,查找、聚焦、向元素发送键并单击“下一步”按钮都没有问题,但这个“欢迎”登录按钮不能完全针对目标。 使用函数“driver.find_element_by_XXX”

例如: “驱动程序。按类名称查找元素(“登录框操作”)。单击() 拜托,我哪里出错了

非常感谢,, 问候大卫

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

Tags: 定位div名称id元素网站选项selenium
3条回答

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

参考以下示例,等待该元素可单击

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

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

按\u id查找\u元素\u 按\u名称查找\u元素\u 通过xpath查找元素 通过链接文本查找元素 通过部分链接文本查找元素 通过标记名称查找元素 通过类名称查找元素 通过\u css\u选择器查找\u元素\u

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

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

相关问题 更多 >

    热门问题