私はセレンのwebdriverでいくつかのものをテストしている状況があります。 OneDriveにログインしようとすると、ドライバはすべての待機を無視し、パスワードを入力したページの「要素が表示されません」というエラーが表示されます。これは、この状況でのみ発生し、いくつかのページでログインプロセスを実行するのにほとんど同じコードを使用する残りのインスタンスはうまく動作します。webdriverが特定のページの待機を無視しています
これは、太線がどこエラーocurs一つで失敗コード
def selenium_onedrive(loading_done_event, selenium, user, psw):
loading_done_event.wait()
login = selenium.find_elements_by_name('loginfmt')[0]
login.send_keys(user)
next_step = selenium.find_element_by_id('idSIButton9')
next_step.click()
password = WebDriverWait(selenium, 10).until(
# EC.presence_of_element_located((By.NAME, "passwd"))
EC.element_to_be_clickable((By.ID, "i0118"))
)
**password.send_keys(psw)**
# password.submit()
next_step = selenium.find_element_by_id('idSIButton9')
next_step.click()
に対応するコードです。それは要素が見つかりませんでしたが、待機(暗黙のものでさえ)は無視されます。
そして、これはFirefoxのドライバを使用してコードを実行し、
def selenium_gdrive(loading_done_event, selenium, user, psw):
loading_done_event.wait()
login = selenium.find_elements_by_name('Email')[0]
login.send_keys(user)
selenium.find_elements_by_name('signIn')[0].click()
password = WebDriverWait(selenium, 10).until(
EC.presence_of_element_located((By.NAME, "Passwd"))
)
password.send_keys(psw)
password.submit()
# now we will be navigated to the consent page
consent_accept_button = WebDriverWait(selenium, 10).until(
EC.element_to_be_clickable((By.ID, "submit_approve_access"))
)
consent_accept_button.click()
追加情報を働くログインコードの一例です。 Chromeのバージョンを使用すると問題なく動作し、ランダムに接続が終了する
? –
この行にはエラーがスローされます "password.send_keys(psw)" この要素は見つかりません。私が暗黙的にwait()を使用しても、それは完全に待ちを無視します。 – inigo