Как отправить последовательность символов в поле имени пользователя и пароля в URL через Selenium? - PullRequest
0 голосов
/ 25 августа 2018

Я попытался войти в систему https://login.economicmodeling.com/login/login.php,, но введенное мной имя пользователя не отображается, и после того, как я запустил команду для ввода пароля, он автоматически открыл новую вкладку без фактического ввода пароля.Кто-нибудь может помочь?Спасибо!

from selenium import webdriver
driver = webdriver.Safari()
driver.get("https://login.economicmodeling.com/login/login.php")
driver.find_element_by_class_name("cc-btn cc-dismiss").click()
user = driver.find_element_by_css_selector('input[name = user]')
password = driver.find_element_by_css_selector('input[name = password]')
user.clear()
user.send_keys('xxx')
password.clear()
password.send_keys('xxx')
driver.find_element_by_id("submitbutton").click()

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

В соответствии с вашим вопросом для входа в систему https://login.economicmodeling.com/login/login.php вам нужно заставить WebDriverWait для желаемых элементов быть активными для кликабельности , и вы можете использовать следующее решение:

  • Блок кода:

    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
    
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    options.add_argument('disable-infobars')
    driver=webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("https://login.economicmodeling.com/login/login.php")
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.fancy.form#userinput"))).send_keys('xxx')
    driver.find_element_by_css_selector('input.fancy.form#passwordinput').send_keys('xxx')
    driver.find_element_by_css_selector("input.submit.button.success#submitbutton").click()
    
  • Снимок браузера:

emsi

0 голосов
/ 25 августа 2018

Отсутствуют одинарные кавычки вокруг атрибутов 'user' и 'password'.

user = driver.find_element_by_css_selector("input[name='user']")
password = driver.find_element_by_css_selector("input[name='password']")

Отправка формы должна быть сделана с отправкой, а не нажатием.

driver.find_element_by_id("submitbutton").submit()
...