首页 > 解决方案 > Python + Selenium - 无法按类名定位元素

问题描述

我正在尝试将 Selenium 与 Python 一起使用来登录网页。我已经到了可以成功输入用户名和密码的地步。最初我尝试只使用密码字段中的“Enter”键,如下所示 -

passwordField = browser.find_element_by_css_selector('#password')
passwordField.send_keys(Keys.ENTER)

这对我不起作用,即使在我的光标位于密码字段中时按“Enter”可以让我正常登录。

 

所以现在我试图点击登录按钮,但我的问题是我似乎无法正确定位元素。

在 Chrome 控制台中,按钮是这样列出的(为便于阅读而添加了新行)-

<button class="btn__primary--large from__button--floating mercado-button--primary"
data-litms-control-urn="login-submit"
type="submit" aria-label="Sign in">Sign in</button>

类名包含空格,所以我尝试了这个 -

signInButton = browser.find_element_by_class_name('btn__primary--large from__button--floating mercado-button--primary')
signInButton.click()

不幸的是 Selenium 找不到那个元素 -

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".btn__primary--large from__button--floating mercado-button--primary"}

如何定位此登录按钮?

 

编辑:这是网址 - https://www.linkedin.com/login?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin

标签: pythonselenium

解决方案


显然它试图将整个字符串视为一个类,但是这些是多个类。您是否尝试过只传入一个类名?尽管它可能会找到多个项目。也许你会更好地寻找一个#id?


推荐阅读