2013-05-12 11 views
5

Próbuję kliknąć element w selenie.Dlaczego mogę kliknąć element w selenu?

Na stronie jest: url = "http://jenner.com/people"

XPath dla elementu jest: url = // div [@ class = 'biura filtry']

Oto mój kod:

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

Po kliknięciu elementu powinien pojawić się pasek rozwijany dla biur. Zamiast tego po kliknięciu elementu nic się nie dzieje. Co ja robię źle?

Odpowiedz

4

Klikasz na div, który zawiera inny div z detektorem zdarzeń. Powinieneś kliknąć div, w którym zarejestrowany jest detektor. Ta ścieżka powinna działać:

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

Skąd wiesz, że słuchacz jest zarejestrowany w dziale dziecięcym, a nie w tym, który zawiera "biura filtrów"? – Mugen

+0

Skąd wiadomo, gdzie zarejestrowano zdarzenie odbiornika? – Floella

3

Tutaj podam Ci działający skrypt, który wybierze lokalizację.

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() 
Powiązane problemy