我一直在努力寻找find_element_by_class_name。我正在尝试使用Selenium和chromedriver登录到网页。为此,我必须首先找到登录按钮,然后单击它。不幸的是,当我使用find_element_by_class_name或find_element_by_xpath方法时,收到以下错误消息: selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素
我正在使用硒版本3.141.0
chrome版本86.0.4240.75
python3
这是我的代码:
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
# Load driver (for Google Chrome)
chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
url = "https://bib.cnrs.fr/#"
driver.get(url)
# Authentification
driver.implicitly_wait(10)
connexion = driver.find_element_by_class_name("login-button.btn.btn-link").click()
我已尝试按照以下建议等待页面加载:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element : what should i do和selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element:
我也尝试过使用xpath方法,如此处建议的:Trouble finding element in Selenium with Python,但无济于事。
尽管html源代码中存在类“ login-button.btn.btn-linky”,但该功能似乎找不到它。
任何帮助将不胜感激。
答案 0 :(得分:0)
问题是我有2个版本的chromedriver,第一个对应于我拥有的较早版本的chrome,第二个对应于我的新chrome版本86.0.4240.75
默认情况下,硒似乎在调用旧版本。可以在终端输出的错误消息中检查正在使用哪个版本的chromedriver。
我卸载了chromedriver(两个版本),并通过在此处获取正确的软件包(与我的google-chrome对应的软件包)重新安装了正确的软件包:https://chromedriver.chromium.org/downloads