silktest для новичков
#81
Отправлено 01 августа 2007 - 11:34
#82
Отправлено 01 августа 2007 - 11:40
так, тока спрошу сам делаю, гет линксом я все схватил.... а какже мне теперь их рассортировать? отделить ответы от рекламных ссылок например?. естьли где описание стандартных функций?Вот никак не понимаю, как мне перебрать ВСЕ ссылки в окне?... да еще и отсеять их по критерию, ну хотябы чтобы он вернул все ссылки? Не подскажите, чтото из примера с гугл никак не выходит, там колумн, а в яндекси дивы... или это здесь не причем?
#83
Отправлено 01 августа 2007 - 12:25
В этом случае мы перебираем все ссылки, пока не наткнемся на некоторую фиксированную ссылку, о которой мы знаем, что она уже не нужна.
Или же нужные ссылки являются дочерними элементами для некоторого окна. Ведь вполне возможно, что там есть окно, у которого только нужные ссылки являются дочерними (непосредственно). Соответственно их можно извлечь либо через GetChildren-метод данного окна, либо перебирая по индексу HtmlLink("#{iIndex}")
#84
Отправлено 01 августа 2007 - 13:02
Хм... интересно, а вот там так: все ссылки нужные находятся внутри дивов таким образом <div class="title"><a ....> тоесть нельзя ли както к этому признаку привязаться? тоесть достовать только ссылки которые висят в таком диве, и считается ли что этот див родитель ссылкам?Тут стандартные функции в чистом виде не помогут. Тут нужно делать привязку к некоторым ссылкам, имеющим фиксированный текст.
В этом случае мы перебираем все ссылки, пока не наткнемся на некоторую фиксированную ссылку, о которой мы знаем, что она уже не нужна.
Или же нужные ссылки являются дочерними элементами для некоторого окна. Ведь вполне возможно, что там есть окно, у которого только нужные ссылки являются дочерними (непосредственно). Соответственно их можно извлечь либо через GetChildren-метод данного окна, либо перебирая по индексу HtmlLink("#{iIndex}")
#85
Отправлено 01 августа 2007 - 18:16
#86
Отправлено 02 августа 2007 - 06:08
#87
Отправлено 02 августа 2007 - 08:50
Но как же так? Ведь у Гугл объект HtmlColumn отвечает целиком за каждый блок найденной ссылке, потому через колумны к ним можно обратиться, а яндекс помещает свои ответы в <li>, но HtmlList отвечает как я понял за целый <OL>, тоесть как же я смогу обратиться к каждому ли отдельно.... и еще, каким образом после описания, например такого:СилкТест же прекрасно справляется с сущностями другого вида - объектами, которые воспринимаются визуально и не очень. Для того, чтобы определить эти сущности вам надо сделать запись оконных деклараций для окна Яндекса.
[-] HtmlList HtmlList1 [-] tag "#1" [-] HtmlLink HtmlLink1 [ ] tag "#1" [-] HtmlLink HtmlLink2 [ ] tag "#4"
тэги 1 и 4 так как по-счету нужная ссылка идет 4-ой после первой... но так бедет не всегда... Так есть ли способ описать универсально, да еще чтобы через объект ко всем 10 ссылкам окна можно было обратиться... в какую сторону копать-то?
#88
Отправлено 02 августа 2007 - 10:51
Поскольку содержимое страницы результатов поиска динамическое, то тут нужно уметь собирать объекты на лету. Соответственно, подход вида:
[-] HtmlList HtmlList1 [-] tag "#1" [-] HtmlLink HtmlLink1 [ ] tag "#1" [-] HtmlLink HtmlLink2 [ ] tag "#4"нам немного не подойдет. Более того, поскольку ссылки динамические, то нам их во фрейме объявлять необязательно. Вместо этого для HtmlList-а в данной оконной декларации можно дописать метод, который позволяет извлечь, например, текст ссылок на найденные страницы. Основной принцип, по которому надо фильтровать - непосредственно ссылки на страницы не имеют фиксированного текстового содержимого, соответственно, мы можем отбрасывать ссылки, содержащие некоторый фиксированный текст.
#89
Отправлено 02 августа 2007 - 11:28
Хм... тоесть то слово по которому я ищу?:)..., мы можем отбрасывать ссылки, содержащие некоторый фиксированный текст.
#90
Отправлено 02 августа 2007 - 13:22
Кроме нужных ссылок есть еще ссылки "Сохраненная копия", "Еще с сайта", а также ссылки с предшествующим словом "Рубрика". Вот эти ссылки надо отсеять и в конечном остатке мы получим список именно ссылок на найденные страницы
#91
Отправлено 02 августа 2007 - 13:22
У меня есть окно со ссылками:
window BrowserChild Яndex tag "Яndex|Яндекс: *"и есть там ссылки обявленные так(или это лишнее):
[-] HtmlList HtmlList1 [-] multitag "#1" [ ] "@(438,62)" [-] HtmlLink HtmlLink1 [ ] tag "*"в тесткейсе я делаю следующее:
[ ] LIST OF ANYTYPE r [ ] r=Яndex.GetLinks()так как мне теперь достать из документа текст ссылки у который хрев равен r[2]? Это же должно как то выполнять? Блин, я никак немогу понять принцпа по которому силк тест описывает окно:( ведь поидеи из этого брозерчилда мне должны быть доступны все объекты в окне, но они не доступны.. покрайне1 мере мне:) подскажите, никак не могу сообразить(
#92
Отправлено 02 августа 2007 - 13:29
Именно, так и собираюсь сделать, но причина покоторой не могу выше... кстати, а отсеивание в тесткейсе или во фрейме осуществлять?Нет, это слово даже не всегда может быть условием фильтра.
Кроме нужных ссылок есть еще ссылки "Сохраненная копия", "Еще с сайта", а также ссылки с предшествующим словом "Рубрика". Вот эти ссылки надо отсеять и в конечном остатке мы получим список именно ссылок на найденные страницы
#93
Отправлено 02 августа 2007 - 13:31
Всетаки никак не могу сообразить как сделать следующие:
У меня есть окно со ссылками:window BrowserChild Яndex tag "Яndex|Яндекс: *"и есть там ссылки обявленные так(или это лишнее):[-] HtmlList HtmlList1 [-] multitag "#1" [ ] "@(438,62)" [-] HtmlLink HtmlLink1 [ ] tag "*"в тесткейсе я делаю следующее:[ ] LIST OF ANYTYPE r [ ] r=Яndex.GetLinks()так как мне теперь достать из документа текст ссылки у который хрев равен r[2]? Это же должно как то выполнять? Блин, я никак немогу понять принцпа по которому силк тест описывает окно:( ведь поидеи из этого брозерчилда мне должны быть доступны все объекты в окне, но они не доступны.. покрайне1 мере мне:) подскажите, никак не могу сообразить(
Возьмем вот эту декларацию:
[+] window BrowserChild wYandex [ ] tag "Яндекс*" ........... [-] HtmlList HtmlList1 [-] multitag "#1" [ ] "@(438,62)" [-] HtmlLink HtmlLink1 [ ] tag "*"А ссылки извлечем вот так:
[ ] LIST OF WINDOW lwLinks = wYandex.HtmlList1.GetChildren()После этого можно удалить все объекты не HtmlLink. Это можно сделать примерно так
[ ] INTEGER i [+] for ( i = 1; i < ListCount( lwLinks ); i++ ) [+] if( ClassOf(lwLinks[i]) != HtmlLink ) [ ] ListDelete( lwLinks , i ) [ ] i--В результате останутся только ссылки
#94
Отправлено 02 августа 2007 - 13:38
так как мне теперь достать из документа текст ссылки у который хрев равен r[2]А это сделать не реально?
Поел пробовать вышеописаные действия
2 KaNoN, наиогромнейшееспасибо! извените что отнимаю у вас столько времени)
#95
Отправлено 02 августа 2007 - 13:42
Я изначально говорил про реализацию метода, который бы извлек все ссылки. И выше я привел механизмы, как это сделать, хотя можно и проще сделать. Например,Именно, так и собираюсь сделать, но причина покоторой не могу выше... кстати, а отсеивание в тесткейсе или во фрейме осуществлять?Нет, это слово даже не всегда может быть условием фильтра.
Кроме нужных ссылок есть еще ссылки "Сохраненная копия", "Еще с сайта", а также ссылки с предшествующим словом "Рубрика". Вот эти ссылки надо отсеять и в конечном остатке мы получим список именно ссылок на найденные страницы
[+] window BrowserChild wYandex [ ] tag "Яндекс*" ........... [-] HtmlList HtmlList1 [ ] tag "#1" [ ] [+] LIST OF WINDOW GetLinks() [ ] LIST OF WINDOW lwWins = {} [ ] INTEGER i = 1 [ ] [+] while( this.HtmlLink("#{i}").Exists() ) [ ] ListAppend( lwWins , this.HtmlLink("#{i}") )В результате в тесткейсе мы можем получить список всех ссылок вызовом:
wYandex.HtmlList1.GetLinks()В метод GetLinks можно добавить код по отсеиванию ненужных ссылок, чтобы в результате получить только ссылки на найденные страницы
#96
Отправлено 02 августа 2007 - 14:17
Но есть два вопроса:)
1. Почему так медленно? 2,5 минуты тратит на сортировку... хотя прав ли я: он дольше тратит на вызов GetText чем просто еслибы я обратился к .text? или так нет такого свойства?
2. Какже мне избавиться от рубрики.. которая всегда разная, или ее нет вовсе, но я точно знаю что перед ней всегда есть текст "рубрика:" может както через тег и запись ^ попробовать?...
#97
Отправлено 02 августа 2007 - 14:23
GetText много времени не занимает. И так, для справки, его аналогом является свойство sValue (а не text, как вы предположили). Много времени занимает именно выбор всех ссылок. Дополнительные фильтры уже дают нагрузку поменьше, хотя она тоже сказывается.Ура! Заработал! Супер спасибо огромное!!!
Но есть два вопроса:)
1. Почему так медленно? 2,5 минуты тратит на сортировку... хотя прав ли я: он дольше тратит на вызов GetText чем просто еслибы я обратился к .text? или так нет такого свойства?
Попробуйте через предыдущий текст. У каждого контрола есть метод GetPriorStatic, который возвращает предшествующий текст. То есть ссылки, у которых предшествующий текст "Рубрика", отсеиваются2. Какже мне избавиться от рубрики.. которая всегда разная, или ее нет вовсе, но я точно знаю что перед ней всегда есть текст "рубрика:" может както через тег и запись ^ попробовать?...
#98
Отправлено 02 августа 2007 - 14:28
[-] while( this.HtmlLink("#{i}").Exists() ) [-] if(this.HtmlLink("#{i}").GetText()!="Сохраненная копия") [-] if(this.HtmlLink("#{i}").GetText()!="Еще с сайта") [-] if(this.HtmlLink("^Рубрика:")!=this.HtmlLink("#{i}")) [ ] ListAppend( lwWins , this.HtmlLink("#{i}") ) [ ] i++ [ ] print(this.HtmlList1.HtmlLink("^Рубрика:").GetText())пишет
*** Error: Window '[HtmlLink]^Рубрика:' was not found
#99
Отправлено 02 августа 2007 - 14:33
[-] if(this.HtmlLink("^Рубрика:")!=this.HtmlLink("#{i}"))
попробуйте
if( this.HtmlLink("#{i}").GetPriorStatic() != "Рубрика:" )
Возможно это поубавит проблем
#100
Отправлено 03 августа 2007 - 08:23
Ответ выглядит так:
(pdf) ... и нечто жесткоеD нечто для него грубоеD превращает в чистый сокD так как хорошие ...
vstrecha-mpda.ru/temp/akatergastos.pdf · 240 КБ
Сохраненная копия · Рубрика: Христианство
Я пишу следующий код
[-] while( this.HtmlLink("#{i}").Exists() ) [-] if(this.HtmlLink("#{i}").GetText()!="Сохраненная копия") [-] if(this.HtmlLink("#{i}").GetText()!="Еще с сайта") [-] if ( this.HtmlLink("#{i}").GetPriorStatic()!="Рубрика:" ) [ ] print("приор: "+this.HtmlLink("#{i}").GetPriorStatic()+" Ссылка: "+this.HtmlLink("#{i}").GetText()) [ ] [ ] ListAppend( lwWins , this.HtmlLink("#{i}") )Но скрипт говорит так:
[ ] приор: (pdf) Ссылка: ... и нечто жесткоеD нечто для него грубоеD превращает в чистый сокD так как хорошие ... [ ] приор: vstrecha-mpda.ru/temp/akatergastos.pdf · 240 КБ Ссылка: ХристианствоТак какже до этой рубрик дбраться? или она на какойто другой глубине находится?
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных