Как получить текст с веб-страницы с помощью закодированного пользовательского интерфейса

I am new for coded ui and I have got stuck for processing message display on webpage. As we used to get text from web page in selenium using method getText(), is such kind of possibility are available in coded ui.?

I would appreciate your help!!!!

Thanks,
Dani

обновлено - 14.05.2014

код скрипта:

 public void FPInternetExplorer()
        {
            #region Variable Declarations
            HtmlEdit uIUserNameEdit = this.UIFundingPilotPortalWiWindow.UIFundingPilotPortalDocument.UIUserNameEdit;
            HtmlEdit uIPasswordEdit = this.UIFundingPilotPortalWiWindow.UIFundingPilotPortalDocument.UIPasswordEdit;
            HtmlInputButton uILoginButton = this.UIFundingPilotPortalWiWindow.UIFundingPilotPortalDocument.UILoginButton;
            HtmlEdit uISecurityQuestionAnswEdit = this.UIFundingPilotPortalWiWindow.UIFundingPilotPortalDocument.UISecurityQuestionAnswEdit;
            HtmlInputButton uIValidateButton = this.UIFundingPilotPortalWiWindow.UIFundingPilotPortalDocument.UIValidateButton;
            #endregion

            this.UIInternetExplorerEnhaWindow6.LaunchUrl(new System.Uri(this.FPInternetExplorerParams.UIInternetExplorerEnhaWindow6Url));

            // Type '[email protected]' in 'User Name' text box
            uIUserNameEdit.Text = this.FPInternetExplorerParams.UIUserNameEditText;

            // Type '{Tab}' in 'User Name' text box
            Keyboard.SendKeys(uIUserNameEdit, this.FPInternetExplorerParams.UIUserNameEditSendKeys, ModifierKeys.None);

            // Type '********' in 'Password' text box
            uIPasswordEdit.Password = this.FPInternetExplorerParams.UIPasswordEditPassword;

            // Click 'Login' button
            Mouse.Click(uILoginButton, new Point(62, 19));

    //Code to get the text from div tag. This is the code I have added  
            HtmlDiv testLabel = new HtmlDiv();
            testLabel.SearchProperties[HtmlDiv.PropertyNames.Id] = "SecurityQuestion_AnswerText";
            string myText = testLabel.InnerText;
            Console.Write("myText " + myText);

            // Type 'Computer' in 'SecurityQuestion.AnswerText' text box
            uISecurityQuestionAnswEdit.Text = this.FPInternetExplorerParams.UISecurityQuestionAnswEditText;

            // Type '{Tab}' in 'SecurityQuestion.AnswerText' text box
            Keyboard.SendKeys(uISecurityQuestionAnswEdit, this.FPInternetExplorerParams.UISecurityQuestionAnswEditSendKeys, ModifierKeys.None);

            // Click 'Validate' button
            Mouse.Click(uIValidateButton, new Point(81, 25));
        }

// При запуске этого кода с использованием закодированного пользовательского интерфейса система выдает исключение: Сообщение — «Для тестирования приложений Магазина Windows используйте шаблон проекта «Проверка закодированного пользовательского интерфейса» для приложений Магазина Windows в узле Магазина Windows». Чего-то не хватает в этом коде? Был бы признателен, если бы вы могли предоставить ссылку для настройки отсутствующего компонента


person Karim Narsindani    schedule 13.05.2014    source источник
comment
Используйте инструмент перекрестия, чтобы записать утверждение для нужного вам текста. Из метода утверждения в файле uimap.designer.cs скопируйте код, который собирает текст, и поместите его в свой собственный код. Удалите вызов метода утверждения.   -  person AdrianHHH    schedule 13.05.2014
comment
@AdrianHHH спасибо за ваш комментарий, я рассмотрю uimap.designer.cs, как вы предложили.   -  person Karim Narsindani    schedule 14.05.2014


Ответы (1)


Свойство, которое вы ищете, — «InnerText». Так, например, по гиперссылке вида:

HtmlHyperlink target = new HtmlHyperlink();
target.SearchProperties[<search property>] = <value>;
string myText = target.InnerText;

Вы можете экстраполировать это, чтобы просто прочитать весь текст на странице, выбрав внешний контейнер страницы и получив его InnerText, а затем проанализировав строку для того, что вы хотите, но я нашел это намного проще, если вы работа в наиболее сфокусированном объекте.

person Ryan Cox    schedule 13.05.2014
comment
Я очень ценю ваш вклад. Я буду использовать пример кода, предоставленный и сообщу вам, если у меня возникнут какие-либо проблемы. Спасибо, Дэни. - person Karim Narsindani; 14.05.2014
comment
Привет, Райан, я добавил следующий код в свой скрипт ' HtmlDiv testLabel = new HtmlDiv(); testLabel.SearchProperties[HtmlDiv.PropertyNames.Id] = SecurityQuestion_AnswerText; // testLabel.SearchProperties[HtmlDiv.PropertyNames.Name] = SecurityQuestion.AnswerText; строка myText = testLabel.InnerText; Console.Write(мойтекст + мойтекст); и системное исключение отображения. Чтобы протестировать приложения Магазина Windows, используйте шаблон проекта Coded UI Test для приложений Магазина Windows в узле Магазина Windows. Чего-то не хватает? Можете ли вы помочь? Спасибо - person Karim Narsindani; 14.05.2014
comment
@dani Возможно, лучше отредактировать вопрос, чтобы показать добавленный вами код. Таким образом, он может быть отформатирован для чтения. Если код генерирует исключение, покажите фактическое сообщение, а не его сводку. В противном случае подробно объясните, что происходит или не происходит. - person AdrianHHH; 14.05.2014
comment
Спасибо, Райан и Адриан. Теперь я могу получить текст с веб-страницы, я записал утверждение и скопировал код из метода и сохранил его в строковой переменной. HtmlDiv uQuestion = this.UIInternetExplorerEnhaWindow.UIFundingPilotPortalDocument.UIWhatisyouurfavouritepPane; строка getQuestion = uQuestion.InnerText; Это сработало для меня, спасибо, - person Karim Narsindani; 14.05.2014