Python中使用Selenium如何定位并输入民生银行网页的登录密码元素?
https://nper.cmbc.com.cn/pweb/static/login.html 需要安装控件, 这个登陆密码的地方右键是没反应的, 我查看源代码谢了这个
driver.find_element_by_css_selector('#writeUserId').send_keys(accountname) # 有效
driver.find_element_by_css_selector('#_ocx_passwordChar_login').send_keys(code) # 无效
这里求助这个密码如何输入

Python中使用Selenium如何定位并输入民生银行网页的登录密码元素?
6 回复
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 初始化浏览器驱动(以Chrome为例)
driver = webdriver.Chrome()
driver.get("https://www.cmbc.com.cn") # 民生银行官网
try:
# 等待登录入口出现并点击(根据实际页面调整选择器)
login_btn = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CLASS_NAME, "login-btn")) # 示例类名
)
login_btn.click()
# 等待密码输入框加载(关键步骤)
password_input = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "input[type='password']"))
)
# 输入密码
password_input.send_keys("your_password_here")
# 可选:提交登录表单
# submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")
# submit_btn.click()
print("密码输入成功!")
except Exception as e:
print(f"定位元素失败: {e}")
finally:
time.sleep(3) # 演示暂停
driver.quit()
关键点说明:
- 动态加载处理:使用
WebDriverWait等待密码框加载完成,避免NoSuchElementException。 - 定位策略:优先使用
CSS_SELECTOR定位type='password'的输入框,这是银行网站常见的密码字段标识。 - 备用方案:如果CSS选择器失效,可尝试:
# 通过ID定位(查看网页源码获取) driver.find_element(By.ID, "passwordId") # 通过name属性定位 driver.find_element(By.NAME, "password") # 通过XPath定位(相对路径更稳定) driver.find_element(By.XPATH, "//input[[@type](/user/type)='password']")
调试建议:先用浏览器开发者工具检查密码框的实际HTML结构,再调整选择器。
一句话总结:用显式等待定位type='password’的input元素最可靠。
这个安全控件似乎是桌面软件 而不是 web 页面。。
naive
用 autoit
直接支付时用手机扫吧


