首页 > 解决方案 > 消息:没有这样的元素:无法找到元素:python 中的 {"method":"css selector","selector":"[id="username"]"} 错误

问题描述

当我登录页面时,发现这些错误

selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":"[id="username"]"}(会话信息:chrome=93.0 .4577.63)

C:\Users\avesh\Desktop\text>[6672:6336:0901/120328.999:ERROR:device_event_log_impl.cc(214)] [12:03:28.999] USB:usb_device_handle_win.cc:1048 无法从 m 节点读取描述符连接:连接到系统的设备无法正常工作。(0x1F) [6672:6336:0901/120329.103:ERROR:device_event_log_impl.cc(214)] [12:03:29.103] USB:usb_device_handle_win.cc:1048 无法从节点连接读取描述符:连接到系统的设备是不工作。(0x1F)

我的代码是

from selenium import webdriver
from getpass import getpass

username = input("name:")

password = getpass("Enter your password")

driver=webdriver.Chrome(executable_path ="C:\\av\\chromedriver.exe")

driver.get("https://services.gst.gov.in/services/login")

username_textbox=driver.find_element_by_id("username")
username_textbox.send_keys(username)

password_textbox=driver.find_element_by_id("user_pass")
password_textbox.send_keys(password)

login_button = driver.find_element_by_xpath("//*button[contains(., 'Login')").click()
login_buttion.submit()

标签: pythonpython-3.xweb-scraping

解决方案


基本上,您正在尝试获取用户名输入,然后尝试将该用户名发送到 UI,我已经优化了您的代码,只有很少的验证点,例如如果用户没有提供任何内容并且还有一个您可以修改的验证是那(用户名应该超过 4 个字符):

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.get("https://services.gst.gov.in/services/login")
wait = WebDriverWait(driver, 20)

username = input("name:")
user_name = wait.until(EC.visibility_of_element_located((By.ID, "username")))

if username == "":
    print("user name was not entered correctly")

if len(username) > 4:
    user_name.send_keys(username)

推荐阅读