2016-05-12 10 views
0

セレンを使用してこのウェブサイトにログインしようとしています: パスワードとログインは表示されません。私は周りを見回し、待っていると言った人がいるのを見ましたが、待つことは助けにならないようです。ここに私のコードは次のとおりです。Pythonでセレンを使用してウェブサイトにログイン

# importing libraries 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import re, time, csv 


driver = webdriver.Firefox() 

driver.get("https://platform.openquake.org/account/login/") 
driver.switch_to 
driver.maximize_window 
time.sleep(10) 

username = driver.find_element_by_xpath("//input[@name='username']") 
username.send_keys("hi there") 

エラーメッセージは次のとおりです。

ElementNotVisibleException: Element is not currently visible and so may not be interacted with 
+1

を:http://stackoverflow.com/questions/27927964/selenium-element-not-可視的な例外 –

+0

私の特定の状況のた​​めにそれを行う方法についてはちょっと混乱しています。私はそれを回避するために使用タブを解決することができました。 – Corncobpipe

答えて

1

あなたのXPATHは、実際には2つの要素にマッチします。非複数のドライバメソッド(find_element_by_XXX)は、一致する最初の要素を返します。この場合は、必要なものはありません。

このような状況に適したデバッグツールは、複数のフォーム(find_elements_by_XXX)を使用して、一致する要素の数を確認することです。この場合

、あなたはTanuが提案何とより制限XPATH使用する必要があります。これは役に立つかもしれません

username = driver.find_element_by_xpath("//div[@class='controls']/input[@id='id_username']") 
password = driver.find_element_by_xpath("//div[@class='controls']/input[@id='id_password']") 
+0

ありがとう!私はこれを使用することを確認します! – Corncobpipe

1

は、あなたのXPathを変更します。

username = driver.find_element_by_xpath("//div[@class='controls']/input[@id='id_username']") 
関連する問題