L'inventore
L'inventore

Reputation: 3

Cannot locate search bar with selenium in python

I have been trying to locate a sidebar bar in this website https://covid19.who.int/?gclid=EAIaIQobChMIkoua643_6gIVDNd3Ch3qgApPEAAYASAAEgIfIvD_BwE

The search bar I am trying to locate is the one on top, which says "Search by Country, Territory, or Area" I tried with XPATH but I always get error in locating the element, or sometimes it says that my element is not interactable (I guess that means that I am locating a different element) Could please show a way to find that element?

here is what I saw when I inspected

Upvotes: 0

Views: 1741

Answers (1)

Vishal Upadhyay
Vishal Upadhyay

Reputation: 811

Assuming that you want to search Country and see the data, So for that you need to locate the id of search box(i.e react-select-2-input) and enter the Country name using send_keys and hit enter.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


site = 'https://covid19.who.int/?gclid=EAIaIQobChMIkoua643_6gIVDNd3Ch3qgApPEAAYASAAEgIfIvD_BwE'

driver = webdriver.Chrome(executable_path = 'chromedriver.exe') # Here I am using Chrome's web driver
#For Firefox Web driver
#driver = webdriver.Firefox(executable_path = 'geckodriver.exe') 
driver.get(site)
time.sleep(3)
elem = driver.find_element_by_id("react-select-2-input")
elem.send_keys("Brazil")
elem.send_keys(Keys.ENTER)

If you are only interested in locating search-bar then you can locate it by it's id(driver.find_element_by_id("react-select-2-input"))

enter image description here

How did I find search-bar id?

Basically search-bar is nothing but a text-box and in HTML text-box code starts with <input type="text">, So I had to just find the HTML code of text box in inspect element of browser.

By seeing your screen-shot I can say you were going in right direction, just you had to expand div tag more till you find code of text box.

enter image description here

Upvotes: 1

Related Questions