2017-06-09 13 views
0

URLを開いてログインとパスワードを入力して開きます。私は Selenium exceptition:メッセージ:要素が表示されない

driver = webdriver.Chrome() 
driver.get(auth_url) 
login = driver.find_element_by_name("login") 
login.send_keys(login) 
pwd = driver.find_element_by_name("passwd") 
pwd.send_keys(pwd) 
btn = driver.find_element_by_class_name('button2 button2_theme_action button2_size_m button2_type_submit i-bem') 
btn.click() 

を使用しかし、私は

<input class="input__control" id="uniq14963212287341158594" name="login" placeholder="Логин" aria-labelledby="labeluniq14963212287341158594 hintuniq14963212287341158594" aria-required="true"></span></span></div><div class="auth__password"><span class="input input_theme_normal input_size_m i-bem" data-bem='{"input":{"live":false}}'><label class="input__hint input__hint_fallback_yes input__hint_visibility_visible" id="hintuniq14963212287341158595" for="uniq14963212287341158595" aria-hidden="true">Пароль</label><span class="input__box"><span class="input__clear" unselectable="on">&nbsp;</span><input class="input__control" id="uniq14963212287341158595" name="passwd" placeholder="Пароль" aria-labelledby="labeluniq14963212287341158595 hintuniq14963212287341158595" type="password" maxlength="256" aria-required="true"></span></span></div><div class="auth__row auth__row_button_yes"><div class="auth__haunter"><span class="checkbox checkbox_theme_normal checkbox_size_m i-bem" data-bem='{"checkbox":{"live":false}}'><button class="button2 button2_theme_action button2_size_m button2_type_submit i-bem" data-bem='{"button2":{"_tabindex":"0"}}' type="submit" autocomplete="off" tabindex="0"><span class="button2__text">Войти</span></button></div></div><div class="auth__social" role="group" aria-label="Войти при помощи социальной сети"></div><div class="auth__row"><div class="auth__remember"><a class="button2 button2_theme_pseudo button2_size_s button2_type_link i-bem" data-bem='{"button2":{"_tabindex":"0"}}' tabindex="0" href="https://passport.yandex.ru/restoration"><span class="button2__text">Вспомнить пароль</span></a></div><div class="auth__register"><a class="button2 button2_theme_pseudo button2_size_s button2_type_link i-bem" data-bem='{"button2":{"_tabindex":"0"}}' tabindex="0" href="https://passport.yandex.ru/registration"><span class="button2__text">Регистрация</span></a></div></div>

+0

あなたの全体のHTMLコードは、任意のボタンの単語を示していない、あなたは ' は、HTMLコード – RNS

+0

を更新してください' find_element_by_class_name(「Button2のbutton2_theme_action button2_size_m button2_type_submit I-BEM」)に定義されています要素と対話する前にいくつかの待機時間を追加するか、暗黙的に追加してください。 – Murthi

+0

@RNS htmlコード –

答えて

1

キー

from selenium.webdriver.common.by import By 
    from selenium.webdriver.support import expected_conditions as EC 
    from selenium.webdriver.support.ui import WebDriverWait 
    driver.set_window_size(1920, 1080) 
    wait = WebDriverWait(wd, 10) 
    login = wait.until(EC.element_to_be_clickable((By.NAME, "login"))) 
    login.send_keys(login) 
を送る行う前の待機時間を追加のようなエラーが

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

html-codeが見え取得します

パスワードは同じです!

PLSのは、このことができます。このdocumentation

希望を参照してください!!

+0

が追加されました。 'selenium.common.exceptions.TimeoutException:Message:' –

+0

@wonkaの提案によれば、この 'driver.set_window_size(1920、1080)'を追加することで、ウィンドウサイズを最大化できますか!私は自分の答えを更新する –

+0

いくつかの時間を最大化するウィンドウは、要素を見つけるのに役立ちます –

1

待ち時間はあなたの問題を解決するdoesntの場合は、時々私は、この使用して、それを解く:

driver.set_window_size(1920, 1080) 

または大きなを、私が使用する(4096、3112)に達する

1

私はそのfind_element_by_class_nameを信じていません()はクラス名の完全なリストで動作します。そのうちの1つを指定してみてください。それはあなたのHTMLに、このユニークな次のようになります。

btn = driver.find_element_by_class_name('button2_theme_action') 
関連する問題