2013-05-12 4 views
5

Ich versuche ein Element in Selen zu klicken.Warum kann ich ein Element in Selen nicht anklicken?

Die Seite ist: url = "http://jenner.com/people"

XPath für das Element ist: url = // div [@ class = 'Filter Büros']

Hier ist mein Code:

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

Wenn ich auf das Element klicke, sollte das Dropdown für Büros angezeigt werden. Wenn ich stattdessen auf das Element klicke, passiert nichts. Was mache ich falsch?

Antwort

4

Sie klicken auf div, das andere div mit Ereignis-Listener enthält. Sie sollten auf div klicken, wo der Listener registriert ist. Dieser XPath sollte funktionieren:

+0

Woher wussten Sie, dass der Listener auf dem Child-Div registriert ist und nicht auf dem, der 'Filter Offices' enthält? – Mugen

+0

Wie können Sie wissen, wo das Hörer-Ereignis registriert ist? – Floella

3

Hier gebe ich Ihnen Arbeitsskript, das Standort auswählen.

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() 
Verwandte Themen