Слэш в названии линка (SilkTest)
Автор Nadin, 12 мая 2006 12:24
Сообщений в теме: 7
#1
Отправлено 12 мая 2006 - 12:24
Привет!
Задача:
На странице есть куча линков, нужно определить, есть ли среди них, например, "my/link".
Page1.HtmlLink("my/link").Exists(2) выдаёт false, даже если линк есть на странице. Я вкурсе, что это из-за слэша. Вопрос в том, как это обойти.
Замена "/" на "?" не подходит, т. к. на странице могут быть и линки типа "my_link" и тогда получаем Error: Window '[HtmlLink]my?link' is not unique
Коллеги, есть какие-нибудь идеи? Пожскажите, плиз
Задача:
На странице есть куча линков, нужно определить, есть ли среди них, например, "my/link".
Page1.HtmlLink("my/link").Exists(2) выдаёт false, даже если линк есть на странице. Я вкурсе, что это из-за слэша. Вопрос в том, как это обойти.
Замена "/" на "?" не подходит, т. к. на странице могут быть и линки типа "my_link" и тогда получаем Error: Window '[HtmlLink]my?link' is not unique
Коллеги, есть какие-нибудь идеи? Пожскажите, плиз
#2
Отправлено 12 мая 2006 - 12:45
Прийдется написать маленький скриптец с использованием функции GetLocation для HtmlLink.
Как пример:
Там конечно нужно это все поменять под твой код. Это просто сама идея...
Как пример:
[ ] WINDOW wLink = NULL [ ] INTEGER iIndex = 1 [+] while BrowserPage.HtmlLink("my?link[{iIndex}]").Exists() [+] if MatchStr("*my/link*", BrowserPage.HtmlLink("my?link[{iIndex}]").GetLocation()) [ ] wLink = BrowserPage.HtmlLink("my?link[{iIndex}]") [ ] break [ ] iIndex++ [ ] Print(wLink)
Там конечно нужно это все поменять под твой код. Это просто сама идея...
#3
Отправлено 12 мая 2006 - 13:59
Ой, спасибо:) Оказывается, индексы в линках используются:) Я просто с СилкТестом пока на Вы.
#4
Отправлено 12 мая 2006 - 18:08
VegaX
Классный код , но зачем все так усложнять? Если у строк есть специальные символы, то и найдутся символы, которые маскируют их. В СилкТесте для строк таким маскирующим символом является двойная кавычка ".
Nadin
Попробуй это, должно помочь.
А индексы используются во всех объектах как еще один уникальный идентификатор, если тэги одинаковы.
Классный код , но зачем все так усложнять? Если у строк есть специальные символы, то и найдутся символы, которые маскируют их. В СилкТесте для строк таким маскирующим символом является двойная кавычка ".
Nadin
Попробуй это, должно помочь.
А индексы используются во всех объектах как еще один уникальный идентификатор, если тэги одинаковы.
#5
Отправлено 15 мая 2006 - 10:15
В СилкТесте для строк таким маскирующим символом является двойная кавычка ".
Есть такой символ. Только я не совсем понимаю как он может тут помочь. Можешь подкинешь пример кода (или тага) как можно его использовать?
Дело в том что конструкция типа:
BrowserPage.HtmlLink("my"/link").Exists()
не подойдет, так как СилкТестом не будет обнаружен конец строкового тега!
#6
Отправлено 15 мая 2006 - 16:43
Интересная картина вырисовывается с этими специальными символами.
Символ " действительно является маскирующим символом, но его действие распространяется на символы " и { (то есть те символы, которые прерывают строку). А для специальных символов вида * , ? , / такая маскировка просто не работает.
В частности знаю, что для функции MatchStr, если нужно сравнивать строку содержащую * как символ, то для точного сравнения в шаблоне используется ** (то есть одна звездочка маскирует другую).
А для данной проблемы все-таки придется писать функцию, которая находит индекс объекта по его тексту. Приведенный ранее пример может подойти. Можно, конечно и обобщить.
А вообще тема интересная. Надо бы на других форумах поискать ответ на этот вопрос или убедиться, что ответа нет
Символ " действительно является маскирующим символом, но его действие распространяется на символы " и { (то есть те символы, которые прерывают строку). А для специальных символов вида * , ? , / такая маскировка просто не работает.
В частности знаю, что для функции MatchStr, если нужно сравнивать строку содержащую * как символ, то для точного сравнения в шаблоне используется ** (то есть одна звездочка маскирует другую).
А для данной проблемы все-таки придется писать функцию, которая находит индекс объекта по его тексту. Приведенный ранее пример может подойти. Можно, конечно и обобщить.
А вообще тема интересная. Надо бы на других форумах поискать ответ на этот вопрос или убедиться, что ответа нет
#7
Отправлено 15 мая 2006 - 16:52
Вот еще одна из интересных тем, которая может быть высвлетлена в книге
#8
Отправлено 15 мая 2006 - 17:45
Еще бы, извращений есть куча
И данный вопрос обязательно будет рассмотрен. Главное, чтобы он не затерялся в куче рутинной информации
И данный вопрос обязательно будет рассмотрен. Главное, чтобы он не затерялся в куче рутинной информации
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных