2015-11-20 72 views
1

使用Python27:硒Python的發送鍵輸入ID

我試圖用自動化來beautifulsoup這個數據庫服務器上解析和輸入數據的搜索和提取方法。到目前爲止,我已經設法讓Python登錄到它。但是現在,當我嘗試搜索輸入元素進行搜索時,我似乎無法得到正確的標識符/代碼。

enter image description here

藍色代碼中突出顯示說:

<input id="QUICKSEARCH_STRING" type="text" on focus="setTimeout('focusSearchElem()',100... 

以藍色突出部分是我認爲我需要以輸入文本,然後搜索來搜索元素。我認爲其餘的,比如輸入我從頁面獲得的結果可能會更容易一些。

我的代碼如下:

from selenium import webdriver 
browser = webdriver.Firefox() 
browser.get('http://somewebpage') 
emailElem = browser.find_element_by_id('j_username') 
emailElem.send_keys('blahblahblah') 
passwordElem = browser.find_element_by_id('j_password') 
passwordElem.send_keys('blahblahblah!') 
login_form = browser.find_element_by_xpath("//a[@id='login']").click() 
searchElem = browser.find_element_by_id('search_panel') 
searchElem.send_keys('blahblahblah') 

我不知道我要去哪裏錯了,但我覺得我靠近。

+0

我看不到任何BeautifulSoup參考在你發佈的代碼中,是否應該有? – davejagoda

回答

0

browser.find_element_by_id('search_panel')

我看不出有任何id="search_panel"元素。

這是我怎麼會找到所需的輸入元素:

browser.find_element_by_id("QUICKSEARCH_STRING") 
browser.find_element_by_css_selector("div.search_panel input#QUICKSEARCH_STRING") 

您可能需要wait for it to become present在登錄後:

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

wait = WebDriverWait(driver, 10) 

search_input = wait.until(EC.presence_of_element_located((By.ID, "QUICKSEARCH_STRING"))) 
search_input.send_keys('blahblahblah')