Selenium WebDriver не имеет прямых методов для этого, чтобы изменить сам DOM. Однако мы можем использовать JavascriptExecutor
для использования javascript для изменения DOM.
проверьте этот пример , чтобы изменить цвет фона. Вы также получите возможность изменить innerHTML.
Хорошо, насколько я понимаю, у вас есть список заданий, и вы пытаетесь сэкономить время, в которое редактировался каждый элемент.
UserDefaults - это пара ключ-значение, и из того, что я вижу, вы пытаетесь использовать один и тот же ключ для, возможно, всех ваших ячеек, что будет означать, что они переопределят друг друга.
Также вы пытаетесь переписать значение, существующее каждый раз, прежде чем использовать его, является ли это правильным поведением, которое вы желаете?
Сначала я расскажу о некоторых основах разработки приложений в первой части, затем отвечу на ваш вопрос во второй части и, наконец, объясню, почему я представил основы разработки приложений из первой части.
Обычно, когда вы создаете приложение, вы сначала определяете свою модель.
Объект модели группирует данные, которые вам нужны для конкретной проблемной области или типа решения, которое вы пытаетесь построить. Они состоят из свойств, которые представляют атрибуты типа, и у них иногда есть методы для обновления и изменения их собственных свойств.
В большинстве случаев вы создаете модельный объект, определяя новую структуру или класс. И вы, как правило, определяете структуру или класс в новом файле Swift.
blockquote>Это отрывок из Unit 4.3 Model View Controller из Разработка приложений со Swift - Apple Education. Очень интересная книга, если вы новичок в разработке приложений.
Модель элемента задач в вашем приложении может выглядеть следующим образом:
struct TodoItem: Codable { let content: String let creationDate: Date init(with string: String) { content = string creationDate = Date() } }
Сохранение элементов задач с датами создания
Теперь, чтобы ответить на ваш вопрос о том, как сохранять различные вопросы с их Соответствующая дата создания, это хорошая практика, чтобы хранить эти вещи также в вашей модели. Например, вы можете создать новый массив для хранения всех различных
TodoItem
(повторное использованиеTodoItem
из моего предыдущего примера), например:var todoList = [TodoItem]()
Когда пользователь создает новый элемент: добавьте [ 116] к
todoList
с помощьюtodoLists.append(TodoItem(with: someUserContent))
Мотивация
- Определив свою «модель» как структуру
TodoItem
иtodoList
, вы можете быть уверены, что всякий раз, когда вы получаете доступ к списку предметов, соответствующая дата создания будет точной датой создания предмета. Это потому, что мы объявилиcreationDate
как константу.- Путем согласования структуры
TodoItem
сCodable
Теперь вы можете использовать библиотеки, такие как Nirma / Default , чтобы легко сохранять и извлекать вашиtodoList
в и из пользовательских значений по умолчанию.- Поскольку теперь у вас есть массив, содержащий все ваши todoItems, очень легко отобразить эти даты в вашем ярлыке, используя:
.
dateLabel.text = dateFormatter.string(from: todoList[itemIndex].creationDate)