Home > Blockchain >  Could not locate element with visible text Selenium web automation
Could not locate element with visible text Selenium web automation

Time:01-17

I am working with selenium. I want to automate a web form. There are two drop-down menu and I am able to automate the first one but I can't automate the second one. The first one is for selecting the State and the second one is for district. I've tried all the three methods that selenium select provides. But it always give me this error : Could not locate element with visible text: RAJNANDGAON

Here's the code:

from lib2to3.pgen2 import driver
from sre_parse import State
from tkinter.tix import Select
from selenium import webdriver

from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
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.chrome.options import Options

import time

chrome_options = Options()
chrome_options.add_experimental_option("detach", True)


driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), chrome_options=chrome_options)

driver.get("https://ssg2021.in/citizenfeedback")

time.sleep(5)
# selcting states
state_select = driver.find_element(By.XPATH,'//*[@id="State"]')
drp1 = Select(state_select)

drp1.select_by_visible_text('Chhattisgarh')


# selecting district
district_select = driver.find_element(By.XPATH,'//*[@id="District"]')
drp2 = Select(district_select)

drp2.select_by_visible_text('RAJNANDGAON')



CodePudding user response:

You are missing a delay between selecting the items.
After selecting the state the second drop list menu needs some time to populate it's list.
So the simplest solution is to add some delay there, as following:

from sre_parse import State
from tkinter.tix import Select
from selenium import webdriver

from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
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.chrome.options import Options

import time

chrome_options = Options()
chrome_options.add_experimental_option("detach", True)


driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), chrome_options=chrome_options)

driver.get("https://ssg2021.in/citizenfeedback")

time.sleep(5)
# selcting states
state_select = driver.find_element(By.XPATH,'//*[@id="State"]')
drp1 = Select(state_select)

drp1.select_by_visible_text('Chhattisgarh')

time.sleep(3)


# selecting district
district_select = driver.find_element(By.XPATH,'//*[@id="District"]')
drp2 = Select(district_select)

drp2.select_by_visible_text('RAJNANDGAON')
  •  Tags:  
  • Related