2017-06-24 15 views
1

私は学校のウェブサイトへのログインを自動化するPythonプログラムを作ろうとしています。Python Selenium要素を見つけることができません

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="loginidtext"]"}

エラーを投げて、関連するコードセクションは、次のとおりです:

BCnumber = driver.find_element_by_xpath('//*[@id="loginidtext"]') 
BCnumber.send_keys('loginid') 

のウェブサイトは次のとおりです。 https://matrix.tjc.edu.sg/?topleft=toprow.php&bottomright=bottomrow.php

私が使用して試してみた:しかし、私はエラーで返されています

driver.switch_to 

関連するdivに切り替えるには同じエラーがありました返された...ここで

+1

このloginidtextフィールドは、2番目のフレームの内側にあります。したがって、インデックス1以降のsendkeysでフレームに切り替える必要があります –

答えて

1

は、あなたの質問への答えです:

ロケータ//*[@id="loginidtext"]topwindowのiframe内にあるように、我々は次のように最初のiframeに切り替えることがあります。

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') 
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") 
driver.get('https://matrix.tjc.edu.sg/?topleft=toprow.php&bottomright=bottomrow.php') 
driver.maximize_window() 
driver.implicitly_wait(20) 
driver.switch_to.frame("topwindow") 
BCnumber = driver.find_element_by_xpath('//*[@id="loginidtext"]') 
BCnumber.send_keys('loginid') 

私にしてみましょうこれがあなたの質問に答えるかどうかを知る。

+0

コードを実行し、それが動作しているかどうかを確認しましたか?それは私のために働いていないので。 – RAJ

+0

@RAJあなたはそこにエラーを見つけましたか?エラーはどこで確認できますか? ありがとう – DebanjanB

+0

要素が存在しませんエラーがスローされました!あなたはプログラムを実行してそれをチェックアウトしましたか?それはあなたのために渡っていますか? – RAJ

関連する問題