Reputation: 11
I know there were several examples with selenium option-selecting. Nevertheless, I still cannot select one in one specific website. https://www.gks.ru/dbscripts/munst/munst20/DBInet.cgi I want to choose Excel option in the top-left Select. The HTML is n attachment
I tried approaching the bar this way
for option in el.find_elements(By.TAG_NAME,'option'):
print(option.text)
if option.text == 'CSV':
option.click() # select() in earlier versions of webdriver
break
I also used find_elements by class and css_selector
Then I used
select = Select(driver.find_element(By.TAG_NAME,'Select'))
select.select_by_visible_text('Excel')
It could not locate the element either
Could anyone please help?
Upvotes: 1
Views: 632
Reputation: 193078
To select the select-options with text as CSV from the html-select tag using Selenium you need to induce WebDriverWait for the element_to_be_clickable()
and you can use either of the following Locator Strategies:
Using CSS_SELECTOR:
select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select.Select[name='Format']"))))
select.select_by_visible_text("CSV")
Using XPATH:
select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@class='Select' and @name='Format']"))))
select.select_by_visible_text("CSV")
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
You can find a couple of relevant discussions in:
Upvotes: 3