Why Cant I Click an Element in Selenium?

36,305

Solution 1

You are clicking on div that contains other div with event listener. You should click on div where listener ist registered. This xpath should work:

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

Solution 2

Here, I give you working script which select location.

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()
Share:
36,305

Related videos on Youtube

Neil Aggarwal
Author by

Neil Aggarwal

Updated on July 23, 2022

Comments

  • Neil Aggarwal
    Neil Aggarwal almost 2 years

    I am trying to click an element in Selenium.

    The site is: url = "http://jenner.com/people"

    The xpath for the element is: url = //div[@class='filter offices']

    Here is my code:

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

    When I click the element, the drop down for offices should appear. Instead, when I click the element, nothing happens. What am I doing wrong?

  • Mugen
    Mugen almost 7 years
    How did you know that the listener is registered on the child div and not on the one containing 'filter offices'?
  • Floella
    Floella over 6 years
    How can you know where the listener event is registered?
  • nalply
    nalply over 4 years
    Open the website in Developer Tools. In my Firefox, for example, there's a bubble event near the element. If you click that bubble, you'll get more details. If there is no bubble, search for the right element above or below in the tree till you've found it, it's only important that the element is under the mouse cursor.