Selenium Python向输入ID发送密钥

时间:2015-11-20 22:48:32

标签: python selenium webdriver

使用Python27:

我正在尝试使用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')

我不确定我哪里出错,但我认为我很接近。

1 个答案:

答案 0 :(得分: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')