Мой код Python не работает при попытке входа в систему?

После ввода пароля я пытаюсь нажать кнопку «Войти», но она не работает. Я пытался войти в систему несколько раз, но по-прежнему сталкиваюсь с той же проблемой.

Я работаю в PyCharm, и мой код приведен ниже:

import time  # imports only
from selenium import webdriver
import selenium.webdriver.support.ui as ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import StaleElementReferenceException


url = "https://login.microsoftonline.com/common/oauth2/authorize?client_id=4345a7b9-9a63-4910-a426-35363201d503&response_mode=form_post&response_type=code+id_token&scope=openid+profile&state=OpenIdConnect.AuthenticationProperties%3d1AdipDE7B0zcz7l3OGcmj55gkZHqyGsAQcD9jsMhOrgAxonoajmDyWeQkCY2muJLk8S1Qa8YEe8dMDejbnu-uR4_YMCg2pyjI78kpq6yy6EDxVmY9hi2jsYrD6JXUh5Q&nonce=637029216192157219.OTAzYjExYWItZmNjNC00ZTkwLWI4Y2MtOTg0NmJiN2ZiZTZiMjczNzc4NTItODM2Ni00ZjU4LWFiMGEtMGJhZDM3YTQ3ZGNl&redirect_uri=https%3a%2f%2fwww.office.com%2f&ui_locales=en-US&mkt=en-US&client-request-id=1fe72f73-2884-4e70-b700-05b1832a94b8"

def _init_(url):
    # open up the web browser
    driver = webdriver.Chrome(executable_path="C:\Webdriver\chromedriver_win32\chromedriver")
    driver.maximize_window()
    driver.get(url)
    return(driver)

driver = _init_(url) # driver function let me show the working opens new window

username = "[email protected]" #my username and pass
password = "xyz"

email_field = driver.find_element_by_xpath("//input[@type='email']").send_keys(username)
next_button = driver.find_element_by_xpath("//input[@type='submit']").click()
wait = WebDriverWait(driver, 10) # first we send username and wait for page to reload

pass_field = driver.find_element_by_xpath("//input[@type='password']").send_keys(password)
submit_button = driver.find_element_by_xpath("//input[@type='submit']")
driver.execute_script("arguments[0].click();",submit_button)
wait=WebDriverWait(driver,10).until(EC.presence_of_element_located(By.XPATH,"//input[@type='submit']"))

Я вижу следующее сообщение об ошибке в консоли:

wait = WebDriverWait (driver, 10) .until (EC.presence_of_element_located (By.XPATH, "// input [@ type = 'submit']")) TypeError: init () принимает 2 позиционных аргумента но 3 были даны

Что мне не хватает?


person Subhasish    schedule 04.09.2019    source источник


Ответы (1)


Вы пропустили одну круглую скобку. Попробуйте ввести код ниже.

username = "[email protected]" #my username and pass
password = "xyz"

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@type='email']"))).send_keys(username)
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@type='submit']"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@type='password']"))).send_keys(password)
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@type='submit']"))).click()
person KunduK    schedule 04.09.2019
comment
Теперь процесс завершен с кодом выхода 0 - эта строка отображается в консоли - person Subhasish; 04.09.2019
comment
Замените на мой код из переменной вашего имени пользователя до конца. Он будет работать нормально. - person KunduK; 04.09.2019
comment
Большой!!! Можете ли вы принять этот ответ, нажав на голограмму под кнопкой "против", чтобы он стал зеленым, как принятый ответ. - person KunduK; 04.09.2019