Полезные заметки php, jquery, mysql, ubuntu, android
admin
Очень часто бывает такая задача: просклонять слово в зависимости от числа и вывести не 21 комментариев а 21 комментарий и […]
Read more
irusik
В это статье мы рассмотрим как вставить в таблицу Excel одну или несколько строк.
Read more
irusik
В большинстве случаев информация воспринимается гораздо лучше, если она представлено наглядно — в виде графика или диаграммы. В Эксель есть […]
Read more
irusik
Excel предлагает очень много возможностей для работы с данными. В нем можно проводить безумное количество вычислений без особого труда. В […]
Read more
irusik
При создании документа в Microsoft Excel по умолчанию применяется шрифт Calibri с размером 11 px. Иногда необходимо его изменить, увеличить […]
Read more
admin
Иногда возникает такая задача, которая может казаться довольно глупой
Read more
irusik
Часто возникает необходимость посмотреть сохраненные пароли в браузере, например, для того, чтобы передать его кому-то или набрать на другом устройстве. […]
Read more
irusik
Случалось ли вам работать в большим количеством вкладок в браузере? Если да, то наверняка вы закрывали нужные вкладки. В этой […]
Read more
admin
Как то раз задался вопросом: как можно отслеживать исходящий трафик с сервера на centos, debian или ubuntu?
Read more
irusik
На сегодняшний день Яндекс является самой популярной поисковой системой в России и СНГ. В этой статье мы рассмотрим как сделать […]
Read more
irusik
Иногда необходимо сфотографировать экран монитора. Существует несколько способов сделать снимок экрана на компьютере или ноутбуке с системой Windows. Рассмотрим самый […]
Read more
irusik
Всем известно, что интернет-браузеры сохраняют историю посещений и поиска. Иногда требуется полностью стереть историю просмотров.
Read more
- Популярное
- Новое
Cypress — как сохранить значение текста Елемента в переменную — cypress.io
Viterzgir (Alex M)
#1
Привет!
Помогите, пожалуйста. Решил попробовать Cypress.
Навалял ПО структуру. Все работает, кроме одно момента — не могу сохранить значение текста на одной странице (цена), для сравнения на другой странице.
cy.get(locator).invoke('text').as('varName')
cy.get(locator).then($el => $el.get(0).innerText)
Я пробовал глобальные переменные с переназначением в then.
Пробовал возвращать значения и сохранить все в переменную.
Пробовал кучу всего. Правда.
Но не как не получилось получить значения.
Или Cypress никак нельзя запихнуть в ПО?
Буду благодарен за любую помощь.
P.s.: invoke('text').as('varName')
можно потом использовать через this.varName, но this у меня — класс, на инстансе которого, конечно же, нет такого значения. Может можно достучаться до объекта Cypress с той переменной?
Dima_Mayboroda (Dima Mayboroda)
#2
А если попробовать просто через метод .text()
или стандартный jQuery .innerText
cy.get('div').should(($div) => { const text = $div.text() })
или
cy.get('div').should(($div) => { const text = $div.get(0).innerText })
1 симпатия
sant0ku
#3
Привет!
Вероятно, такой подход не сочетается с архитектурой Cypress.
И, вероятно, это не всегда нужно…
Since Cypress chains are asynchronous and they wait for each other, you can’t store an element object into a variable. Instead, you need to use aliases for that.
Вот тут (https://blog.servmask.com/8-tricks-i-learned-from-cypress/) в пункте 2 есть пример.
1 симпатия
Viterzgir (Alex M)
#4
Спасибо за помощь
@sant0ku, а какой, в таком случае, паттерн подходит для Cypress. Не писать же спагетти с вложеностями в тестах?! Или я чего-то не понимаю.
sant0ku
#5
Опять же, мне кажется, что вот тут неплохо объяснено: https://www.cypress.io/blog/2019/01/03/stop-using-page-objects-and-start-using-app-actions/
Кроме того, вот неплохой доклад про то, почему не всегда стоит следовать “лучшим/привычным практикам” (это касательно PO): https://youtu. be/U6z2dK7MwmI?t=216
NB! Конкретно по теме смотреть до 19:26, но я бы рекомендовал посмотреть видео целиком, поскольку довольно интересно. Разве что про BDD спорно…
1 симпатия
javascript. Является ли хранение элементов jQuery в переменных более эффективным?
спросил
Изменено 6 лет, 6 месяцев назад
Просмотрено 1к раз
Что эффективнее?
var myElement = $("#имя-моего-элемента") мойЭлемент.doSomethingOnce; мойЭлемент.сделатьЧто-тоДважды; ... мойЭлемент.doSomethingTenTimes;
или
$("#имя-моего-элемента").doSomethingOnce; $("#имя-моего-элемента").doSomethingTwice; ... $("#имя-моего-элемента").doSomethingTenTimes;
У меня есть страница, на которой html-элементы имеют множество разнообразных и иногда повторяющихся взаимодействий с JS, поэтому мне интересно, предотвращает ли сохранение элемента в переменной несколько «запросов» jQuery.
Поскольку мой проект представляет собой веб-приложение, я очень хочу настроить все, что в моих силах, для браузера.
- JavaScript
- jquery
Всегда рекомендуется кэшировать узлы. Объем работы, которую JS-движок должен выполнить для поиска узлов, дороже, чем память, которую вы будете использовать для хранения узла (конечно, если вы не храните массивное дерево DOM или что-то в этом роде).
Итак, победитель:
var myElement = $("#the-name-of-my-element") мойЭлемент.doSomethingOnce; мойЭлемент.сделатьЧто-тоДважды; ... мойЭлемент.doSomethingTenTimes;
Если вы выполняете несколько задач с одним и тем же элементом, лучше кэшировать его в переменной, чтобы JS не выбирал элемент повторно при каждом вызове.
Также легче поддерживать ваш код — например. если вы хотите изменить селектор, вам нужно изменить его в одном месте, а не просматривать код и искать его.
Использование $("#the-name-of-my-element")
каждый раз, когда выполняется поиск элемента dom.
Использование var myElement = $("#the-name-of-my-element")
поиск элемента dom выполняется только один раз, а затем сохраняется в переменной. Так что в следующий раз к нему будет обращаться быстрее и без вызова дополнительных функций.
Итак, в заключение — присваивать элемент переменной, если вам приходится использовать его несколько раз, эффективнее, чем искать его каждый раз.
0
с $("#the-name-of-my-element")
jQuery просматривает все дерево dom, чтобы найти все элементы, которые применяются к правилу селектора.
Таким образом, поместить результат в переменную и использовать ее вместо того, чтобы использовать один и тот же селектор пару раз, будет более эффективно.
Предупреждения: если один из вызываемых методов ( doSomeThing..()
) добавляет новый элемент с тем же селектором, этот элемент не будет обработан. Хорошо, если это идентификатор, но могут возникнуть проблемы при использовании классов ( ". someclass"
)
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Отправная точка для изучения TypeScript
TypeScript: Отправная точка для изучения TypeScriptПерейти к основному содержаниюНачало работы
Краткое введение в зависимости от вашего опыта или предпочтений.
- TS for the New Programmer
- TypeScript for JS Programmers
- TS for Java/C# Programmers
- TS for Functional Programmers
- TypeScript Tooling in 5 minutes
Handbook
A great first read for your daily TS work .
- The TypeScript Handbook
- The Basics
- Everyday Types
- Narrowing
- More on Functions
- Object Types
- Type Manipulation
- Creating Types from Types
- Generics
- Keyof Type Operator
- Typeof Type Оператор
- Индексированные типы доступа
- Условные типы
- Сопоставленные типы
- Литеральные типы шаблонов
- Классы
- Модули
У нас также есть версии Руководства в форматах epub и pdf.
Справочник
Справочные материалы для глубоководных погружений.
- Utility Types
- Cheat Sheets
- Decorators
- Declaration Merging
- Enums
- Iterators and Generators
- JSX
- Mixins
- ECMAScript Modules in Node. js
- Modules
- Module Resolution
- Namespaces
- Пространства имен и модули
- Символы
- Директивы с тройной косой чертой
- Совместимость типов
- Вывод типов
- Объявление переменных
Учебные пособия
Использование TypeScript в нескольких средах.
- ASP.NET Core
- Gulp
- Манипуляции с DOM
- Миграция с JavaScript
- Использование Babel с TypeScript
Файлы объявлений
Научитесь писать объявления для написания файлов JavaScript. Важно для вкладов с определенным типом.
- Введение
- Ссылка на объявление
- Структуры библиотеки
- .
- Глобальный: изменение модуля
JavaScript
Работа с инструментами JavaScript Type.powered.