selenium+chrome模拟注册和登录https://community.nodebb.org失败!

注册然后转到登录界面,点击登录,提示登录失败,账户无效

Login Unsuccessful
Invalid login credentials

这个账号我自动注册和手动注册都试过了,手动注册是可以登录的
代码如下:

import logging
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()


def register():
    browser.get(url='https://community.nodebb.org/register')
    
    try:
        email = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'email'))
        )
        username = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'username'))
        )
        password = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'password'))
        )
        confirm_password = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'password-confirm'))
        )
        registration_question = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'registration-question'))
        )
        submit = WebDriverWait(browser, 5).until(
            EC.element_to_be_clickable((By.ID, 'register'))
        )
        try:
            robot_check = browser.find_elements_by_css_selector('#recaptcha-anchor > div.recaptcha-checkbox-checkmark')
            robot_check.click()
        except Exception:
            pass
        email.send_keys('rivenqinyy@gmail.com')
        username.send_keys('rivenqinyy')
        password.send_keys('pass1234')
        confirm_password.send_keys('pass1234')
        registration_question.send_keys('4')
        submit.click()
        
    except TimeoutException:
        logging.warning('Timeout')

    finally:
        pass


def login(name='rivenqinyy@gmail.com', passwd='pass1234'):
    browser.get(url='https://community.nodebb.org/login')
    try:
        username = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'username'))
        )
        password = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'password'))
        )
        login_button = WebDriverWait(browser, 5).until(
            EC.presence_of_element_located((By.ID, 'login'))
        )
        username.send_keys(name)
        password.send_keys(passwd)
        login_button.click()
    except TimeoutException:
        logging.warning('Timeout')
        return login(name, passwd)
        
        
def main():
    # register()
    login()
    
    
if __name__ == '__main__':
    main()
  

求解惑,不甚感激

阅读 4.4k
1 个回答

代码没问题,登录的时候username用rivenqinyy。(虽然他登录页面写了username/email,但是email无法登录)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进