You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium爬虫开发协助:实现登录点击及随机凭证提交功能

问题解决与代码修正

首先,你的原代码中登录按钮的定位器完全错误,根据提供的目标网站HTML,登录按钮是页面右上角的<a href="/login">Login</a>标签,以下是完整的实现代码,包含登录按钮点击、随机凭证输入及提交功能:

完整代码

from selenium import webdriver
from selenium.webdriver.common.by import By
import random
import string

# 生成随机字符串作为登录凭证
def generate_random_string(length=8):
    letters = string.ascii_letters + string.digits
    return ''.join(random.choice(letters) for _ in range(length))

# 初始化驱动并访问网站
driver_path = "chromedriver"
driver = webdriver.Chrome(driver_path)
driver.get('http://quotes.toscrape.com/')
driver.maximize_window()

# 点击登录按钮(修正定位逻辑)
login_link = driver.find_element(By.LINK_TEXT, "Login")
login_link.click()

# 生成随机用户名和密码
random_username = generate_random_string()
random_password = generate_random_string()

# 定位输入框并填入随机凭证
username_input = driver.find_element(By.ID, "username")
username_input.send_keys(random_username)
password_input = driver.find_element(By.ID, "password")
password_input.send_keys(random_password)

# 点击登录提交按钮
submit_btn = driver.find_element(By.XPATH, '//input[@value="Login"]')
submit_btn.click()

# 后续操作(如关闭浏览器)
# driver.quit()

关键修正说明

  • 登录按钮定位:用By.LINK_TEXT直接匹配"Login"文本,简洁可靠;也可改用XPath定位:driver.find_element(By.XPATH, '//a[@href="/login"]')
  • 随机凭证生成:通过自定义函数生成包含字母、数字的随机字符串,模拟随机登录信息
  • 输入框定位:目标网站登录页的用户名、密码输入框ID分别为username和password,直接通过ID定位效率最高
  • 提交按钮定位:登录提交按钮的value属性为"Login",用XPath精准定位该元素

内容的提问来源于stack exchange,提问作者Nico Sheperd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:05:35