К сожалению, @Html.DropDownListFor()
ведет себя несколько иначе, чем другие помощники при рендеринге элементов управления в цикле. Об этом ранее сообщалось как о проблеме с CodePlex (не уверен, что ее ошибка или просто ограничение)
. Это 2 варианта для решения этой проблемы, чтобы обеспечить выбор правильной опции на основе свойства модели
Вариант 1 (с использованием EditorTemplate
)
Создайте пользовательский EditorTemplate
для типа в коллекции. Создайте парциальное значение в /Views/Shared/EditorTemplates/AggregationLevelConfiguration.cshtml
(обратите внимание, что имя должно соответствовать имени типа
@model yourAssembly.AggregationLevelConfiguration
@Html.DropDownListFor(m => m.HelperCodeType, (SelectList)ViewData["CodeTypeItems"])
.... // other properties of AggregationLevelConfiguration
, а затем в главном представлении передать SelectList
в EditorTemplate
как additionalViewData
@using (Html.BeginForm())
{
...
@Html.EditorFor(m => m.Configurations , new { CodeTypeItems = Model.CodeTypeItems })
...
Вариант 2 (сгенерируйте новую SelectList
на каждой итерации и установите selectedValue
)
В этом параметре ваше свойство CodeTypeItems
должно быть IEnumerable<GenericIdNameType>
, а не SelectList
(или просто сделать codeTypes
общедоступным свойством). Затем в главном представлении
@Html.DropDownListFor(m => m.Configurations[0].HelperCodeType, new SelectList(Model.CodeTypeItems, "Id", "Name", Model.Configurations[0].HelperCodeType)
Сторона примечания: нет необходимости использовать new { id = "Configurations[0].HelperCodeType"
- метод DropDownListFor()
уже сгенерированный атрибут id
Я делаю автоматическое тестирование в Python. Я имею тенденцию использовать следующее:
http://www.tizmoi.net/watsup/intro.html Изменить: Ссылка мертва, архивная версия: https: http://www.mayukhbose.com /python/IEC/index.php
Я не всегда (почти никогда) не моделирую нажатия клавиш и движения мыши. Обычно я использую COM для установки значений объектов Windows и вызова их методов .click ().
Вы можете отправить сигналы нажатия клавиш с помощью этого:
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused
shell.SendKeys("{DELETE}") # Delete selected text? Depends on context. :P
shell.SendKeys("{TAB}") #Press tab... to change focus or whatever
Все это в Windows. Если вы находитесь в другой среде, я понятия не имею.
Возможно, вы ищете Sendkeys ?
SendKeys - это модуль Python для Windows, который может отправить одно или несколько комбинаций клавиш или комбинаций клавиш в активное окно.
blockquote>кажется, что это только окна
Также у вас есть pywinauto (скопировано из моего SO ответа )
pywinauto - это набор модулей с открытым исходным кодом (LGPL) для использования Python в качестве драйвера автоматизации GUI для операционных систем на базе Windows NT (NT / W2K / XP).
blockquote>и пример с веб-страницы
> from pywinauto import application > app = application.Application.start("notepad.exe") > app.notepad.TypeKeys("%FX") > app.Notepad.MenuSelect("File->SaveAs") > app.SaveAs.ComboBox5.Select("UTF-8") > app.SaveAs.edit1.SetText("Example-utf8.txt") > app.SaveAs.Save.Click()
Вы можете использовать библиотеку PyAutoGUI для Python, которая работает на Windows, macOS и Linux.
Вот простой код для перемещения мышь на середину экрана:
import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
Страница документов: Функции управления мышью .
Связанный вопрос: Управление мышью с помощью Python .
Пример:
pyautogui.typewrite('Hello world!') # prints out "Hello world!" instantly
pyautogui.typewrite('Hello world!', interval=0.25) # prints out "Hello world!" with a quarter second delay after each character
Страница документов: Функции управления клавиатурой .
< hr>More reading: Управление клавиатурой и мышью с помощью GUI-автоматизации (глава 18 электронной книги).
Связанные вопросы:
pyautogui - отличный пакет для отправки ключей и автоматизации нескольких задач, связанных с клавиатурой и мышью. Проверьте Управление клавиатурой и мышью с помощью GUI Automation и документации PyAutoGUI .
shell.AppActivate("Notepad")
(замените Блокнот) – dagur 11 November 2014 в 09:46