I am getting error in scrapping content through selenium python

I am scrapping the title of jobs results on https://www.indeed.ae/jobs-in-dubai through selenium. i think .text is not working. i am running the code through selenium which go to main website, enter selective keyword and then scrap all titles from result. but i am getting error, how can i solve this error

here is my code

import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys  Path = "C:\Program Files (x86)\chromedriver.exe" driver = webdriver.Chrome(Path)  driver.get("https://indeed.ae/") print(driver.title) search = driver.find_element_by_name("l") search.send_keys("Dubai") search.send_keys(Keys.RETURN)   try:     td = WebDriverWait(driver, 10).until(         EC.presence_of_element_located((By.ID, "resultsCol"))     )     divs = td.find_elements_by_tag_name("div")     for div in divs:         header = div.find_element_by_class_name("title")         print(header) finally:     driver.quit()  driver.quit() 

and i am getting following error

Job Search | Indeed Traceback (most recent call last):   File "C:/Users/hp/Desktop/python projects/selenium-pycharm/selenium-bot.py", line 24, in <module>     header = div.find_element_by_class_name("title")   File "C:\Users\hp\Desktop\python projects\selenium-pycharm\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 398, in find_element_by_class_name     return self.find_element(by=By.CLASS_NAME, value=name)   File "C:\Users\hp\Desktop\python projects\selenium-pycharm\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 659, in find_element     {"using": by, "value": value})['value']   File "C:\Users\hp\Desktop\python projects\selenium-pycharm\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute     return self._parent.execute(command, params)   File "C:\Users\hp\Desktop\python projects\selenium-pycharm\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute     self.error_handler.check_response(response)   File "C:\Users\hp\Desktop\python projects\selenium-pycharm\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response     raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".title"}   (Session info: chrome=83.0.4103.116)   Process finished with exit code 1 

thanks in advance

Add Comment
1 Answer(s)

You can not find title because you get all of the div from the resultsCol. which means some div have title and some not.

Try this :

try:     td = WebDriverWait(driver, 10).until(         EC.presence_of_element_located((By.ID, "resultsCol"))     )     divs = td.find_elements_by_tag_name("div")     #print(divs)     for div in divs:         try:             header = div.find_element_by_class_name("title")             print(header.text)         except:             continue finally:     driver.quit()  driver.quit() 

which give title as output :

Receptionist Administrative Assistant/ Document Controller RECEPTIONIST ADMIN OFFICER IN UAE Data Entry Assistant (Fresh Graduate) Receptionist Replenishment Associate - Light Household - Hypermarket DOCUMENT CONTROLLER School Administrative Assistant - Dubai ACCOUNTANT 
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.