2017-01-23 4 views
1

Iveはxpath、name、idを試しましたが、なぜそれが効いていないのかはわかりません。私が試してみるたびに、それは要素を見つけることができないと言います。セレンは元素を見つけることができませんか? (自動ウェブアプリ)

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

まあ、コピー、貼り付け、あなたのURLは、あなたが正しいアドレスを持っている場合ので、確認してください、 'URL found'ないサイトを返されました。 –

+0

このサイトがスペースでフォーマットする方法は、「https://www.adidas.co.uk/on/demandware.store/Sites-adidas-GB-Site/en_GB/MyAccount-Register」です。セレンはサイトを細かくロードします。 –

答えて

1

あなたが

first_name_field = driver.find_element_by_id("profile_customer_firstname") 

を使用する必要がありますので、また、それがiframeの内側に配置され、profile_customer_firstname値ではなくnameid属性を持つの検索要素。試してみてください:

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

そのような要素はありません –

+0

更新された回答を確認してください – Andersson

+0

それはそれでした!ありがとうございました ! –

0

はこれで試してみてください:

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

まだメッセージがありません - メッセージ:そのような要素がありません:要素を見つけることができません: "" "xpath"、 "selector": "// input [@ id = 'profile_customer_firstname']」} –

+0

ロードすると、page_is_loadedはdriver.find_element_by_tag_xpath( "// div [@ class'registration ']")のような別の要素を見つける必要があります – Wonka

関連する問題