2017-01-23 4 views
1

Ive versuchte Xpath, Name, ID, aber nicht sicher, warum es nicht funktioniert. Jedes Mal, wenn ich es versuche, sagt es nur, dass es das Element nicht finden kann.Selen kann Element finden? (automatisierte Web-App)

from selenium import webdriver 
from selenium.common.exceptions import TimeoutException 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 



def page_is_loaded(driver): 
    return driver.find_element_by_tag_name("body") != None 
driver = webdriver.Chrome('/Users/mattcasey/Desktop/SPLASHFORCE/chromedriver') 
driver.get("https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/MyAccount-Register") 
wait = WebDriverWait(driver, 10) 
wait.until(page_is_loaded) 
first_name_field = driver.find_element_by_name("profile_customer_firstname") 
first_name_field.send_keys("Test") 
+0

Nun, copy-Einfügen der URL zurückgegeben 'URL nicht found' Website, so überprüfen Sie bitte, ob Sie richtige Adresse haben. –

+0

Es ist die Art, wie diese Website es mit einem Leerzeichen formatiert, "https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/MyAccount-Register" Ist die Website und Selen lädt die Website in Ordnung. –

Antwort

1

Das Element Sie suchen, hat id Attribut mit profile_customer_firstname Wert, aber nicht name, so dass Sie

first_name_field = driver.find_element_by_id("profile_customer_firstname") 

Auch ist es befindet sich innerhalb eines iframe verwenden sollten. Versuchen:

driver.switch_to_frame(driver.find_element_by_xpath("//iframe[@class='sso-iframe']")) 
first_name_field = driver.find_element_by_id("profile_customer_firstname") 
+0

Sagt kein solches Element –

+0

Überprüfen Sie die aktualisierte Antwort – Andersson

+0

Das war es! Vielen Dank ! –

0

mit Try this:

first_name_field = driver.find_element_by_xpath("//input[@id='profile_customer_firstname']") 
+0

Erzähl mir immer noch - Nachricht: kein solches Element: Element konnte nicht gefunden werden: {"method": "xpath", "selector": "// input [@ id = 'profile_customer_firstname']"} –

+0

Dies ist Ursache der Web istnt load, du page_is_loaded musst ein anderes Element finden, wie driver.find_element_by_tag_xpath ("// div [@ class'registration ']") – Wonka

Verwandte Themen