selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法通过Python使用Selenium来定位元素错误

问题描述 投票:0回答:2

我正在尝试使用硒自动在我的网站上进行登录。

我正在访问此网站:http://front-desk.fr/users/accounts/login/?next=/

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

chrome_path = r"C:\Users\gaeta\OneDrive\Bureau\chromedriver.exe"

class FrontDesk:
    def __init__(self,username,password):
        self.username = username
        self.password = password
        self.bot = webdriver.Chrome(chrome_path)

    def login(self):
        bot = self.bot
        bot.get("http://front-desk.fr/users/accounts/login/")
        time.sleep(5)
        email = bot.find_element_by_class_name('textinput textInput form-control')
        email.send_keys(self.username)



ed = FrontDesk('[email protected]', 'password1234')
ed.login()

但是发生错误:

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ css选择器”,“ selector”:“。textinput textInput表单控件“}

这是我的网站,所以我确定上课了,我已经看过SO了,答案是关于Iframe,我没有任何内容。

我已经尝试过使用类,ID等。一切正常,除了它不能填充输入。

python selenium xpath css-selectors webdriverwait
2个回答
0
投票

此错误消息...

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".textinput textInput form-control"}

...表示ChromeDriver无法在浏览上下文中找到所需的元素,即Chrome浏览器会话。

要在Identifiant字段中发送字符序列,您必须为element_to_be_clickable()引入WebDriverWait,并且可以使用以下Locator Strategies中的任何一个:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#id_login"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='id_login']"))).click()
    
  • Note:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

-2
投票

HTML源无效,有很多未关闭的标签,例如样式表的标签。修复这些问题,然后重试。

© www.soinside.com 2019 - 2024. All rights reserved.