Selenium Python AttributeError:' WebElement'对象没有属性' select_by_visible_text'

时间:2016-04-01 15:38:26

标签: python-2.7 selenium selenium-webdriver

我从Selenium Python的下拉字段中选择一个值。我收到了错误:

AttributeError: 'WebElement' object has no attribute 'select_by_visible_text'

我选择下拉列表的方法是:

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)"))

HTML是:

    <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>

我想选择值&#34;查询(查询)&#34;

我可以选择这个值吗?

错误跟踪是:

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'

谢谢Riaz

1 个答案:

答案 0 :(得分:5)

select_by_visible_text()方法在Select类上可用,实例化它:

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)