2017-07-17 4 views
1

Ich klicke auf einen Hyperlink, beim Anklicken öffnet sich ein Popup-Fenster. Ich möchte Benutzername und Passwort eingeben und dann die Login-Taste drücken, aber ich bekomme einen Fehler des unsichtbaren Elements. Mein Benutzername und Passwort Felder sind bevölkert zu werden, sondern auf Klick von Log-in-Taste gibt es FehlerPython Selen Fehler Einloggen Pop-up-Fenster

driver = webdriver.Chrome() 
driver.get('https://www.website/') 

window_before=driver.window_handles[0] 
print('window before', window_before) 
driver.find_element_by_class_name("LoginModal").click() 
window_after= driver.find_element_by_class_name("loginwindow_2") 

print('window after', window_after) 

driver.find_element_by_id("username").send_keys("Enter") 

driver.find_element_by_id("password").send_keys(" password here") 

Es ist bevöl Benutzername und Passwort richtig, aber wenn ich diesen Typen gibt es mir einen Fehler.

driver.find_element_by_class_name("bluebutton2") 

Fehler

File "C:/Users/myfile/mucode.py", line 21, in 
<module> 

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible 
    (Session info: chrome=59.0.3071.115) 
    (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64) 

Danke

Antwort

0

Es zu klicken versuchen, sind 3 Elemente auf der Seite mit dem Klassennamen "bluebutton2". Der erste ist versteckt, deshalb bekommst du ElementNotVisibleException. Sie müssen nur einen spezifischeren Selektor verwenden, um dem erforderlichen Element zu entsprechen. Versuchen Sie unter:

driver.find_element_by_css_selector('td[valign="middle"]>button.bluebutton2').click() 

aktualisieren

Um Eingabefelder behandeln Sie unter Code verwenden können, um einige Zeit zu warten und vermeiden ElementNotVisibleException:

from selenium.webdriver.support.ui import WebDriverWait as wait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 

wait(driver, 10).until(EC.visibility_of_element_located((By.ID, "username"))).send_keys("Enter") 
wait(driver, 10).until(EC.visibility_of_element_located((By.ID, "password"))).send_keys("password here") 
+0

Hallo, jetzt gibt es Fehler bei der folgende Zeile sagt Element nicht gefunden >>>>>>>>>> driver.find_el ement_by_id ("Benutzername"). send_keys ("Enter") – Analyst

+0

Kannst du mir bitte mit dem Code aus dieser Zeile helfen? – Analyst

+0

Meinst du 'NoSuchElementException'? Auf 'driver.find_element_by_id (" Benutzername "). Send_keys (" Enter ")'? – Andersson

0

dies versuchen, kann nicht arbeiten, und ich nehme an, Sie auf der Login-Button

driver.execute_script('arguments[0].click();', driver.find_element_by_class_name('bluebutton2')) 
+0

Hallo, das nicht funktionierte, aber jetzt ist es gibt mir denselben Fehler des Elements, das nur an dieser Linie nicht sichtbar ist >>>>>>>>>>>> driver.find_element_by_id ("Benutzername"). send_keys ("Enter") – Analyst