Встала задача найти определенный объект, с заранее известными свойствами, но не хранящийся в репозитории: объект может быть произвольным, подобных объектов может быть очень много. У объекта известно:
- Class Name = Link // это гиперссылка
- text == innerttext == outertext // название модели, например, телефона, которое задано параметром
Для отыскания объекта использовал несколько подходов
Первый:
Set decrModelHyperLink = Description.Create
decrModelHyperLink("name").Value = tmpModelName
decrModelHyperLink("href").RegularExpression = False
decrModelHyperLink("micclass").Value = "Link"
decrModelHyperLink("micclass").RegularExpression = False
Set hyperLinkModelList = pgProduct.ChildObjects(decrModelHyperLink)
For i = 0 to (hyperLinkModelList.Count() - 1)
Set hyperLinkModel = hyperLinkModelList(i)
hyperLinkModel.WaitProperty "visible", True, (intDelaySeconds * 1000)
CheckAvailability hyperLinkModel, "Hyperlink on model " & tmpModelName
hyperLinkModel.Click
NextВызывает ошибку в строке Click. Параметры гиперрссылки неопределены (т.е. GetROProperty(<smth>) выдвет EmptyВторой
Set decrModelHyperLink = Description.Create
decrModelHyperLink("Class Name").Value = "Link"
decrModelHyperLink("text").Value = tmpModelName
decrModelHyperLink("outertext").Value = tmpModelName
decrModelHyperLink("innertext").Value = tmpModelName
Set hyperLinkModelList = pgProduct.ChildObjects(decrModelHyperLink)
For i = 0 to (hyperLinkModelList.Count() - 1)
NextНе находит нужную гиперссылку вообще (хотя на странице она есть)Третий
Set decrModelHyperLink = Description.Create
decrModelHyperLink("text").Value = tmpModelName
Set hyperLinkModelList = pgProduct.ChildObjects(decrModelHyperLink)
For i = 0 to (hyperLinkModelList.Count() - 1)
Set hyperLinkModel = hyperLinkModelList(i)
NextВызывает ошибку во вложенной строке цикла Set, хотя найденный объект -- всего один. Если верить spy, то это -- именно эта ссылка, иначе их должно быть больше.На странице гиперссылка присутствует (смотрел Object Spy), свойства оттуда и брал. Подскажите, в чем может быть проблема
Edit: процедура CheckAvailability проверяет свойство Exist объекта и пишет в Report либо micPass либо micFail
Edit 2: на самом деле нужный набор гиперссылок содержится в WebTable, но я не могу ее накликать из Object Spy: я могу добавить только самый нижний объект иерархии, но ткнуть именно в таблицу наугад не получается из-за смещения


