Selenium点击按钮失效

请指教一下,豆瓣的元素submit信息如图:
clipboard.png

代码如下:
click、ENTER、RETURN、SPACE统统没用


from selenium import webdriver  # 导入selenium
from selenium.webdriver.common.keys import Keys


def loginZhihu():
    loginurl = 'https://accounts.douban.com/login'  # 登录页面
    # 加载webdriver驱动,用于获取登录页面标签属性
    driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
    driver.get(loginurl)  # 请求登录页面
    driver.find_element_by_name('form_email').clear()  # 获取用户名输入框,并先清空
    driver.find_element_by_name('form_email').send_keys(u'5467878878')  # 输入用户名
    driver.find_element_by_name('form_password').clear()  # 获取密码框,并清空
    driver.find_element_by_name('form_password').send_keys(u'454354543543')  # 输入密码

    captcha = driver.find_element_by_id('captcha_image')  # 获取验证码标签
    submit = driver.find_element_by_css_selector('input[class="bn-submit"]')  # 获取提交按钮
    # 判断是否需要验证码
    if captcha:
        captcha_field = driver.find_element_by_id('captcha_field')  # 获取验证码输入框
        text = input("请输入验证码:")  # 控制栏输入验证码
        captcha_field.send_keys(text)  # 将输入的验证码传递给selenium打开的浏览器
        submit.send_keys(Keys.RETURN)  # 按钮提交并登录
    else:
        submit.send_keys(Keys.RETURN)  # 无验证码则直接登录提交
    cookies = driver.get_cookies()  # 获取验证码
    driver.get('https://movie.douban.com/')  # 请求其他页面
    return cookies  # 返回cookies 之后其他方法可以调用,这样不用每次请求都返回登录
loginZhihu()
阅读 3.9k
1 个回答

根据你的截图,submit 按钮并没有被选中,应改成

-submit = driver.find_element_by_css_selector('input[class="bn-submit"]')  # 获取提交按钮
+submit = driver.find_element_by_css_selector('input[class="btn-submit"]')  # 获取提交按钮
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进