鍍金池/ 問(wèn)答/Python/ Selenium點(diǎn)擊按鈕失效

Selenium點(diǎn)擊按鈕失效

請(qǐng)指教一下,豆瓣的元素submit信息如圖:
clipboard.png

代碼如下:
click、ENTER、RETURN、SPACE統(tǒng)統(tǒng)沒(méi)用


from selenium import webdriver  # 導(dǎo)入selenium
from selenium.webdriver.common.keys import Keys


def loginZhihu():
    loginurl = 'https://accounts.douban.com/login'  # 登錄頁(yè)面
    # 加載webdriver驅(qū)動(dòng),用于獲取登錄頁(yè)面標(biāo)簽屬性
    driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
    driver.get(loginurl)  # 請(qǐng)求登錄頁(yè)面
    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')  # 獲取驗(yàn)證碼標(biāo)簽
    submit = driver.find_element_by_css_selector('input[class="bn-submit"]')  # 獲取提交按鈕
    # 判斷是否需要驗(yàn)證碼
    if captcha:
        captcha_field = driver.find_element_by_id('captcha_field')  # 獲取驗(yàn)證碼輸入框
        text = input("請(qǐng)輸入驗(yàn)證碼:")  # 控制欄輸入驗(yàn)證碼
        captcha_field.send_keys(text)  # 將輸入的驗(yàn)證碼傳遞給selenium打開(kāi)的瀏覽器
        submit.send_keys(Keys.RETURN)  # 按鈕提交并登錄
    else:
        submit.send_keys(Keys.RETURN)  # 無(wú)驗(yàn)證碼則直接登錄提交
    cookies = driver.get_cookies()  # 獲取驗(yàn)證碼
    driver.get('https://movie.douban.com/')  # 請(qǐng)求其他頁(yè)面
    return cookies  # 返回cookies 之后其他方法可以調(diào)用,這樣不用每次請(qǐng)求都返回登錄
loginZhihu()
回答
編輯回答
怣痛

根據(jù)你的截圖,submit 按鈕并沒(méi)有被選中,應(yīng)改成

-submit = driver.find_element_by_css_selector('input[class="bn-submit"]')  # 獲取提交按鈕
+submit = driver.find_element_by_css_selector('input[class="btn-submit"]')  # 獲取提交按鈕
2017年5月30日 04:23