python - 消息:没有这样的元素:无法找到元素: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()
解决方案
基本上,您正在尝试获取用户名输入,然后尝试将该用户名发送到 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)
推荐阅读
- encryption - 通过 SFTP 传输时是否需要加密数据
- java - 如何使 docker 容器向同一网络中运行的另一个容器发送 HTTP 请求
- scala - Spark SQL with Scala:registerTempTable 的弃用警告
- r - 控制分类变量 R 的限制输出
- coq - 应用策略后如何让 coq 打印出新的目标和假设
- aws-lambda - 如何将 Cloud9 (python) 连接到 VPC 中的 Redshift?
- swift - 鼠标事件后自定义 Carbon 键事件处理程序失败
- android - java.net.UnknownHostException:主机是未解析的 SOCKS 代理
- javascript - 在常规inetrvals mvc中登录到Web应用程序后检测用户活动更新数据库
- c - C - fprintf 返回访问冲突写入位置 0x00246D1C