Reputation: 4072
I am selecting a value from a drop down field in Selenium Python. I am getting the error:
AttributeError: 'WebElement' object has no attribute 'select_by_visible_text'
My method to select the drop down is:
def select_dataset_from_dataset_dropdown(self):
dataset_drop_down_element = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID, 'search_variables_lb_datasets')))
dataset_drop_down_element.select_by_visible_text(str("Query (Query)"))
The HTML is:
<select id="search_variables_lb_datasets" class="gwt-ListBox marginbelow" style="display: inline;">
<option value="-">-</option>
<option value="CRM">CRM</option>
<option value="ESCR">ESCR</option>
<option value="ORCHARD">ORCHARD</option>
<option value="Edit_test">Edit_test</option>
<option value="Query (Query)">Query (Query)</option>
</select>
I would like to select the value "Query (Query)"
Can i select this value?
The error trace is:
Traceback (most recent call last):
File "C:\Webdriver\ClearCore Regression Test\ClearCore - Regression Test\TestCases\StructuredSearch_TestCase.py", line 54, in test_00001_create_search_query_dataset_for_search_and_check_search_variables_dm_query_variables_are_displayed
search_variables_dm_query_page.select_datamap_and_dataset_from_the_dropdown()
File "C:\Webdriver\ClearCore Regression Test\ClearCore - Regression Test\Pages\Structured_Search\search_dm_query_page.py", line 90, in select_datamap_and_dataset_from_the_dropdown
self.select_dataset_from_dataset_dropdown()
File "C:\Webdriver\ClearCore Regression Test\ClearCore - Regression Test\Pages\Structured_Search\search_dm_query_page.py", line 79, in select_dataset_from_dataset_dropdown
dataset_drop_down_element.select_by_visible_text(str("Query (Query)"))
AttributeError: 'WebElement' object has no attribute 'select_by_visible_text'
Thanks, Riaz
Upvotes: 10
Views: 20726
Reputation: 49
Moin I would like to add 2 things.
first tmp= Select(driver.find_element_by_id("search_variables_lb_datasets")) tmp.select_by_visible_text('')
secondly, it's important to get too the position with .send_keys(), before
take care
Upvotes: 1
Reputation: 474031
select_by_visible_text()
method is available on the Select
class, instantiate it:
from selenium.webdriver.support.select import Select
dataset_drop_down_element = WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID, 'search_variables_lb_datasets')))
dataset_drop_down_element = Select(dataset_drop_down_element)
Upvotes: 13