Получение текущего значения из раскрывающегося меню с помощью Python Selenium

Сообщение Anonymous »

Я проверяю выбранное значение из раскрывающегося поля на веб-странице в Selenium Python. Я хотел бы распечатать выбранное значение. Я распечатываю все значения из раскрывающегося списка.
Например. В раскрывающемся списке есть список следующих значений: «Плавающая точка», «Дата/время», «Текстовая строка», «Целое число».
Например. Выбранное значение: «Текстовая строка».
Когда я печатаю значение, оно выводит «Floating pointDate/timeText stringInteger».
Мой фрагмент кода:

Код: Выделить всё

def get_selected_value_from_user_defined_type_dropdown(self, type):
# Params : the selected value for the user defined type dropdown e.g. Text string
user_defined_type_dropdown_element = self.get_element(By.XPATH, '//table[@id="data_configuration_edit_data_object_tab_details_tb_fields"]/tbody/tr[1]//td[3]//select')
print ("------------------------------")
print user_defined_type_dropdown_element.text
return user_defined_type_dropdown_element.text
Get Element находится в моем базовом классе, реализация:

Код: Выделить всё

# returns the element if found
def get_element(self, how, what):
# params how: By locator type
# params what: locator value
try:
element = self.driver.find_element(by=how, value=what)
except NoSuchElementException, e:
print what
print "Element not found "
print e
screenshot_name = how + what + get_datetime_now() # create screenshot name of the name of the element + locator + todays date time.  This way the screenshot name will be unique and be able to save
self.save_screenshot(screenshot_name)
raise
return element
HTML:

Код: Выделить всё










Floating point
Date/time
Text string
Integer









Как мне распечатать выбранное значение?
Я пытался использовать first_selected_option, но получаю следующую ошибку:

Код: Выделить всё

    Traceback (most recent call last):
File "C:\Webdriver\ClearCore 501 Regression Test\ClearCore 501 - Regression Test\TestCases\DataObjectsPage_TestCase.py", line 294, in testk_edit_Data_Objects_ACVSEQ_Is_The_Saved_Details_Present
self.assertTrue(data_objects_edit_page.is_value_saved_from_user_defined_type_dropdown("Text string"), "Data Objects ACVSEQ type drop down does not show the expected saved value.  Please see log for details")
File "C:\Webdriver\ClearCore 501 Regression Test\ClearCore 501 - Regression Test\Pages\data_objects_edit.py", line 140, in is_value_saved_from_user_defined_type_dropdown
return self.get_selected_value_from_user_defined_type_dropdown(str(value)) == value
File "C:\Webdriver\ClearCore 501 Regression Test\ClearCore 501 - Regression Test\Pages\data_objects_edit.py", line 133, in get_selected_value_from_user_defined_type_dropdown
selected_option_element = user_defined_type_dropdown_element.first_selected_option
AttributeError: 'WebElement' object has no attribute 'first_selected_option'
Мой фрагмент кода:

Код: Выделить всё

def get_selected_value_from_user_defined_type_dropdown(self, type):
#Params : the selected value for the user defined type dropdown e.g. Text string
user_defined_type_dropdown_element = self.get_element(By.XPATH, '//table[@id="data_configuration_edit_data_object_tab_details_tb_fields"]/tbody/tr[1]//td[3]//select')
selected_option_element = user_defined_type_dropdown_element.first_selected_option
print ("------------------------------")
print selected_option_element.text
return selected_option_element.text
Я получил фрагмент кода Python для использования first_selected_option из этого сообщения:
https://sqa.stackexchange.com/questions ... do-i-work- with-dropdowns-in-selenium-webdriver
Почему first_selected_option не работает? Подскажите пожалуйста, какой синтаксис?
Спасибо,
Риаз

Подробнее здесь: https://stackoverflow.com/questions/355 ... n-selenium