@lucas1 said in Поиск текста во фрейме:
Спасибо.
А как к селектору MATCH применить OR?
Чтобы искать сразу несколько строк.
Ни как, используйте два действия для разных текстов. Либо используйте xpath
выполняешь действие "Расположение ресурса" указав ресурс который ссылается на текстовый документ. На выходе получишь переменную [[RESOURCE_LOCATION]] (это имя по умолчанию) которая содержит полный путь до файла.
выполняешь действие "Читать файл" в качестве пути к файлу указываешь переменную [[RESOURCE_LOCATION]]. Это действие вернет переменную в которой будет содержимое файла, по умолчанию [[FILE_CONTENT]]
в действие "Выполнить код" вставляешь следующий код. Функцию писал не я) нашел в инете.
//Вложенные {} эта функция не поддерживает
var spin = function (text) {
var SPINTAX_PATTERN = /\{[^"\r\n\}]*\}/;
var match;
while (match = text.match(SPINTAX_PATTERN)) {
match = match[0];
var candidates = match.substring(1, match.length - 1).split("|");
text = text.replace(match, candidates[Math.floor(Math.random() * candidates.length)])
}
return text;
}
//[[FILE_CONTENT]] содержит {Привет,|Здаров,} {как дела?|что нового?|как жизнь?} {увидимся|нужно встретится} {сегодня|завтра|вечером}
VAR_TEXT = spin([[FILE_CONTENT]]); //в переменной [[TEXT]] будет рандомизированный текст
log([[TEXT]]) //Здаров, как дела? нужно встретится завтра
@Viktor said in Рандомизация текста.:
@santilo да, на 100 %
Без него работает, с ним нет. Переменная file_content туда передается. Код без моих правок.
Что-то я наверное сделал не так, но что непонятно. В режиме отладки, подчеркну, работает и код. Странное что-то.
Да вы правы, действительно эта функция работает только в режиме записи, я наверное только в этом режиме и проверял ее, когда публиковал код. Ошибка происходит из за этой строчки, var SPINTAX_PATTERN = /{[^"\r\n}]*}/, бас воспринимает квадратные скобки, как часть синтаксиса вызова ресурса(мне так кажется), их наверное нужно как то экранировать , но я не знаю как это сделать.
Костыль: Вы можете заменить квадратные скобки на любой другой символ, например на #.
#Привет,|Здаров,# #как дела?|что нового?|как жизнь?#
var SPINTAX_PATTERN = /\#[^"\r\n\#]*\#/
Добавлен новый метод апи _spintax Использовать так
[[SPINTAX_RESULT]] = _spintax("{Привет|Как дела}")
Действие Шаблон теперь поддерживает спинтакс.
Например, такой шаблон
{Текст|[[VARIABLE]]|{{Resource}}}
Означает текст или значение переменной или значение из ресурса.
Билд будет через пол часа.
@DrPrime Это если шаблон грузится из файла. Он попадает в переменную [[FILE_CONTENT]] и если применить к этой переменной действие Шаблон, то в результате получим просто содержимое файла как результат. А если установить эту галку, то действие раскроет шаблон 2 раза