2013-05-12 25 views
5

Sto provando a fare clic su un elemento in selenio.Perché non posso fare clic su un elemento nel selenio?

Il sito è: url = "http://jenner.com/people"

XPath per l'elemento è: url = // div [@ class = 'uffici di filtro']

Ecco il mio codice:

from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get(url) 
element = driver.find_element_by_xpath("//div[@class='filter offices']") 
element.click() 

Quando faccio clic sull'elemento, dovrebbe apparire il menu a discesa per gli uffici. Invece, quando clicco sull'elemento, non succede nulla. Che cosa sto facendo di sbagliato?

risposta

4

Si fa clic su div che contiene altri div con listener di eventi. Dovresti cliccare su div dove listener è registrato. Questo xpath dovrebbe funzionare:

//div[@class='filter offices']/div[@class='header'] 
+0

Come facevi a sapere che l'ascoltatore è registrato sul div figlio e non su quello che contiene "uffici filtro"? – Mugen

+0

Come si può sapere dove è registrato l'evento listener? – Floella

3

Qui, ti do script di lavoro che seleziona la posizione.

from selenium import webdriver 
import time 

driver = webdriver.Chrome('./chromedriver.exe') 
url="https://jenner.com/people" 
try: 
    driver.get(url) 
    element = driver.find_element_by_xpath("//div[@class='filter offices']") 
    element.click() 
    time.sleep(5) 
    element = driver.find_element_by_xpath("//input[@id='search_offices_chicago']") 
    element.click() 
    time.sleep(5) 
except Exception as e: 
    print e 
    driver.quit() 
driver.quit() 
Problemi correlati