2017-12-21 22 views
1

Webアプリケーションとやりとりするプログラムを作成しようとしています。WebアプリケーションのPython Selenium click()メソッド

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

browser = webdriver.Firefox() 
browser.get('https://www.easports.com/fifa/ultimate-team/web-app/') 

element = WebDriverWait(browser, 20).until(EC.presence_of_element_located(\ 
    (By.ID, 'Login'))) 
element.click() 

print("Found %s" % element) 
print("locatione %s" % element.location) 

設計することにより、ブラウザを開いたはずロードし、検索して「ログイン」ボタンをクリックしてページを待ちます。 「ログイン」ボタンは見つかりましたが、クリックしません。場所は間違った座標も明らかに印刷されています。この問題の考えられる理由と解決策は何ですか?

+0

ログイン用のHTMLコードを表示できますか? –

+0

要素が非表示の場合、このような状況が発生する可能性があります。要素が表示されている場合は、javaスクリプトを使用して、 'driver.execute_script(" arguments [0] .scrollIntoView(); "、要素)を使用して要素をページの中央に移動することができます ' –

+0

明らかに間違った座標も正しく印刷されている "ScrollIntoViewを使用するほうが良い –

答えて

0

別のロジックでボタンの位置を確認してください。例えば、クラスを経由して:あなたは、あなたの「ログインのための間違ったロケータを使用している

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='standard call-to-action']"))).click() 
0

クリック次のコード行を使用することができます"ボタンをクリックします。

はそのために、次のコードを使用します

element = WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".standard.call-to-action"))) 
browser.execute_script("arguments[0].scrollIntoView();", element) 
element.click() 

は、それはあなたのお役に立てば幸い!

0

Loginボタンfind

element = browser.find_element_by_class_name('call-to-action') 
element.click() 
関連する問題