我試圖連接到學校的網址並使用硒自動化過程。最初我嘗試使用分裂,但遇到類似的問題。我似乎無法與用戶名和密碼字段進行交互。我意識到一點點,因爲它是一個我需要與之交互的iframe。目前,我有:與網站表單互動
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("https://my.oregonstate.edu/webapps/login/")
driver.switch_to.frame('Content') #I tried contentFrame and content as well
loginid = driver.find_elements_by_id('user_id')
loginid.send_keys("***")
passwd = driver.find_elements_by_id('password')
passwd.send_keys("***")
sub = driver.find_elements_by_id('login')
sub.click()
time.sleep(5)
driver.close()
這裏是我想與之交互的HTML:
網站:https://my.oregonstate.edu/webapps/portal/frameset.jsp
的IFRAME:
<iframe id="contentFrame" style="height: 593px;" name="content" title="Content" src="/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_1_1" frameborder="0"></iframe>
的形式:
用戶名:<input name="user_id" id="user_id" size="25" maxlength="50" type="text">
密碼:
<input size="25" name="password" id="password" autocomplete="off" type="password">
看來,硒能找到的元素隨便找,但我無法輸入任何信息到這些領域,我得到了錯誤「列表對象有沒有屬性」。當我意識到這是我嘗試導航到的iframe時,它說'無法定位幀:內容'。是否有另一個iframe我缺少?或者明顯的東西?這是我第一次在這裏很抱歉,如果我搞砸了代碼鏈接。
感謝您的幫助。
你是對上發現的元素。然而,我的問題仍然存在於iframe中。無論我使用什麼,無論是id還是name,它仍然無法連接。我注意到有另一個導航欄的iframe。但我不應該連接到第一個權利?它們在html中是分開的。你有什麼建議嗎? – KJS 2014-09-02 18:14:58
@KJS:我已經測試了上面的代碼。你在使用什麼環境?我有Python 2.7.5,Selenium 2.42.1,Firefox 24.6.0 ESR。請嘗試與Chrome,如果它的工作,那麼它應該是一個Firefox問題,而不是代碼。 – 2014-09-02 20:53:25
嗯,我得到它使用不同的URL來連接。我不認爲這是代碼,但奇怪的是,也許是網站。我目前正在使用網站: https://my.oregonstate.edu/webapps/login/?action=relogin 它允許我輸入字段但不選擇提交按鈕。我正在使用find_element_by_class_name('submit button-1'),但我得到錯誤'給定的選擇器提交按鈕1無效或不會導致webelement。有什麼想法嗎? – KJS 2014-09-03 02:31:41