Запустив IE9 с URL-адресом, я обнаружил, что запущены два процесса; родительский и дочерний процессы. В ObjectBrowser TestComplete оба процесса имеют узел Page и связанные дочерние элементы.
В моем Silverlight AUT (тестируемое приложение) есть сетка данных, которую мне нужно прокрутить. Я проверяю полосу прокрутки, прежде чем пытаться прокрутить сетку.
Однако я получаю разные результаты в зависимости от процесса, который я использую.
aqObject.IsSupported(
Sys.Process("iexplore", 1).Page("https://localhost/url/" ).Panel("silverlightContainer" ).Object(0 ).UIAObject("Popup" ).UIAObject("x" ).UIAObject("tab" ).UIAObject("TabItem", 2 ).UIAObject("StepList" )
, "VerticalScrollPercent")
aqObject.IsSupported(
Sys.Process("iexplore", 2).Page("https://localhost/url/" ).Panel("silverlightContainer" ).Object(0 ).UIAObject("Popup" ).UIAObject("x" ).UIAObject("tab" ).UIAObject("TabItem", 2 ).UIAObject("StepList" )
, "VerticalScrollPercent")
Один из них вернет true, другой false. Кажется, не имеет значения, сколько я обновляю мир Sys.Refresh
или элемент управления Sys.Process...UIAObject("StepList").Refresh
, одно всегда будет давать сбой, а другое проходит.
Это действительно странно, но я мог бы обойти это, если бы это было предсказуемо, но это не так. Иногда работает родительское дерево процессов, иногда дочернее.
Мой вопрос..
- Что происходит?
- Как решить в момент запуска приложения, какой процесс использовать для автоматизации?
- Как еще я мог бы достичь своей цели прокрутки списка (чтобы найти нужную строку), не сталкиваясь с этой проблемой?