Share this page

# WPF code samples (.NET SDK)

In this topic:

## End-to-End: Reserve a flight using WPF objects

The example below demonstrates how to create a program which simulates a flight booking on the Flight GUI sample application.

The example includes a SetSecure step for logging in.

      [Test]
    public void TestFlightSampleApplication()
    {
    	using (new FlightGuiSampleWpfApp())
    	{
    		// Identify the main Flight GUI sample application window
    		_flightGUIAapplicationWindow = Desktop.Describe<IWindow>(new WindowDescription
    		{
    			ObjectName = @"Micro Focus MyFlight Sample",
    			FullType = @"window",
    			WindowTitleRegExp = @"Micro Focus MyFlight Sample"
    		});

    		PerformLogin();
    		SearchForFlight();
    		OpenFlightsTable();
    		SelectFlight();
    		FinishOrder();
    		VerifyOrderCompleted();
    		ExitFlightApp();
    	}
    }

    private void PerformLogin()
    {
    	// Sample showing how to perform the actions to login in to the Flight GUI sample application

    	// Identify the user name field
    	var userNameEdit = _flightGUIAapplicationWindow.Describe<IEditField>(new EditFieldDescription
    	{
    		ObjectName = @"agentName"
    	});
    	userNameEdit.SetText("john"); // Fill in the user name field

    	#region Doc_Wpf_SetSecure
    	// Identify the password field
    	var passwordEdit = _flightGUIAapplicationWindow.Describe<IEditField>(new EditFieldDescription
    	{
    		ObjectName = @"password"
    	});

    	// Enter a value for the password. You use the encryption utility to extract the encrypted string (see the UFT Developer documentation).
    	// Plain text is used for the example code.
    	passwordEdit.SetSecure("HP");
    	#endregion

    	// Identify the OK button
    	var okButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription
    	{
    		Text = @"OK",
    		ObjectName = @"okButton"
    	});
    	// Click the OK button
    	okButton.Click();
    }

    private void SearchForFlight()
    {
    	ChooseFlightSourceAndDestination();
    	ChooseFlightDate();
    	ChooseFlightClassAndNumberOfTickets();
    }

    #region Doc_Wpf_Combobox_Samples
    // This example selects items from a combo box using index and string values.

    private void ChooseFlightSourceAndDestination()
    {
    	// Identify the "from city" combobox
    	var fromCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription
    	{
    		ObjectName = @"fromCity"
    	});

    	// Select an item in the combo box using a (0-based) numeric index.
    	fromCityComboBox.Select(3);

    	// Identify the "to city" combo box
    	var toCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription
    	{
    		ObjectName = @"toCity"
    	});

    	// Select an item in the combo box using a string value.
    	toCityComboBox.Select("London");
    }
    #endregion

    #region Doc_Wpf_SettingWpfDateControl
    // This example locates and sets the date of the date picker control.
    private void ChooseFlightDate()
    {
    	// Identify the date picker control. The date picker is identified through the main window and not directly from the Flight GUI applications.
    	var flightDatePicker = Desktop.Describe<IWindow>(new WindowDescription
    	{
    		ObjectName = @"Micro Focus MyFlight Sample",
    		FullType = @"window",
    		WindowTitleRegExp = @"Micro Focus MyFlight Sample"
    	}).Describe<ICalendar>(new CalendarDescription
    	{
    		ObjectName = @"datePicker"
    	});
    	// Select the flight date.
    	flightDatePicker.SetDate(new DateTime(year:2025, month:8, day:1));
    }
    #endregion

    private void ChooseFlightClassAndNumberOfTickets()
    {
    	// Identify the flight class combobox
    	var flightClassCombobox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription
    	{
    		ObjectName = @"Class",
    		FullType = @"combo box"
    	});
    	flightClassCombobox.Select("Business"); // Choose the "Business" flight class

    	// Identify the number of tickets combobox
    	var numOfTickets = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription
    	{
    		ObjectName = @"numOfTickets"
    	});
    	numOfTickets.Select("2"); // Choose 2 tickets to buy
    }

    private void OpenFlightsTable()
    {
    	// Identify the "FIND FLIGHTS" button
    	var findFlightsButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription
    	{
    		Text = @"FIND FLIGHTS",
    		ObjectName = @"FIND FLIGHTS"
    	});
    	findFlightsButton.Click(); // click on the button
    }

    #region Doc_Wpf_SettingWpfDataGridControlRow
    // This example selects a row in the data grid.

    private void SelectFlight()
    {
    	// Identify the flights data grid (ITable).
    	var flightsDataGrid = _flightGUIAapplicationWindow.Describe<ITable>(new TableDescription
    	{
    		ObjectName = @"flightsDataGrid"
    	});

    	// Select the third row in the data grid.
    	flightsDataGrid.SelectRow(2);

    	var selectFlightButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription
    	{
    		Text = @"SELECT FLIGHT",
    		ObjectName = @"selectFlightBtn"
    	});

    	// Click the "Select Flight" button.
    	selectFlightButton.Click();
    }
    #endregion

    private void FinishOrder()
    {
    	// Identify the passenger name edit field
    	var passengerNameField = _flightGUIAapplicationWindow.Describe<IEditField>(new EditFieldDescription
    	{
    		ObjectName = @"passengerName"
    	});
    	passengerNameField.SetText("John Doe"); // Enter the passenger name

    	// Identify the total price field
    	var totalPrice = _flightGUIAapplicationWindow.Describe<IUiObject>(new UiObjectDescription
    	{
    		ObjectName = @"totalPrice"
    	});
    	Verify.AreEqual("$652.00", totalPrice.Text, "Verify Price", "Verify the price is $652.00."); // Verify the price is $652.00

    	// Identify the "Order" button
    	var oderButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription
    	{
    		Text = @"ORDER",
    		ObjectName = @"orderBtn"
    	});
    	oderButton.Click(); // Click on the "Order" button to perform the flight reservation
    }

    #region Doc_Wpf_WaitUntilSample
    private void VerifyOrderCompleted()
    {
    	// Identify the order completed text
    	var orderCompletedControl = _flightGUIAapplicationWindow.Describe<IUiObject>(new UiObjectDescription
    	{
    		ObjectName = @"orderCompleted"
    	});

    	// The next line shows how to use the WaitUntil method with C# Func delegate to wait for the control to become visible.
    	// The WaitUntil method passes the control's interface instance - in this case, an IUiObject - to the C# Func delegate as a parameter.
    	// The C# Func delegate expects a single parameter and returns a boolean value.
    	// In this sample, the C# Func delegate returns the IsVisible value of the control passed to it as a parameter.
    	// The WaitUntil method then waits for the C# Func delegate to return true, for a default amount of time.
    	// The C# Func delegate is called every few milliseconds, until it returns true, or until the default timeout expires.
    	bool controlIsVisible = orderCompletedControl.WaitUntil((control) => { return control.IsVisible; });
    	Verify.IsTrue(controlIsVisible, "Verify Control is Visible", "Verify the 'order completed' control is visible."); // Verify the control is visible

    	string orderCompletedControlText = orderCompletedControl.Text; // Get the "order completed" control's text
    	Verify.IsTrue(orderCompletedControlText.EndsWith("completed"), "Verify Order Completed", "Verify the 'order completed' control's text is ending with the string 'completed'."); // Verify the "order completed" control's text is ending with the string "completed".
    }
    #endregion

    private void ExitFlightApp()
    {
    	_flightGUIAapplicationWindow.Close();
    }

Back to top

## Use WaitUntil to complete a flight reservation

Back to top

    private void VerifyOrderCompleted()
    {
    	// Identify the order completed text
    	var orderCompletedControl = _flightGUIAapplicationWindow.Describe<IUiObject>(new UiObjectDescription
    	{
    		ObjectName = @"orderCompleted"
    	});

    	// The next line shows how to use the WaitUntil method with C# Func delegate to wait for the control to become visible.
    	// The WaitUntil method passes the control's interface instance - in this case, an IUiObject - to the C# Func delegate as a parameter.
    	// The C# Func delegate expects a single parameter and returns a boolean value.
    	// In this sample, the C# Func delegate returns the IsVisible value of the control passed to it as a parameter.
    	// The WaitUntil method then waits for the C# Func delegate to return true, for a default amount of time.
    	// The C# Func delegate is called every few milliseconds, until it returns true, or until the default timeout expires.
    	bool controlIsVisible = orderCompletedControl.WaitUntil((control) => { return control.IsVisible; });
    	Verify.IsTrue(controlIsVisible, "Verify Control is Visible", "Verify the 'order completed' control is visible."); // Verify the control is visible

    	string orderCompletedControlText = orderCompletedControl.Text; // Get the "order completed" control's text
    	Verify.IsTrue(orderCompletedControlText.EndsWith("completed"), "Verify Order Completed", "Verify the 'order completed' control's text is ending with the string 'completed'."); // Verify the "order completed" control's text is ending with the string "completed".
    }

## Select items from a combo box control

This example selects items from a combo box using index and string values.

    private void ChooseFlightSourceAndDestination()
    {
    	// Identify the "from city" combobox
    	var fromCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription
    	{
    		ObjectName = @"fromCity"
    	});

    	// Select an item in the combo box using a (0-based) numeric index.
    	fromCityComboBox.Select(3);

    	// Identify the "to city" combo box
    	var toCityComboBox = _flightGUIAapplicationWindow.Describe<IComboBox>(new ComboBoxDescription
    	{
    		ObjectName = @"toCity"
    	});

    	// Select an item in the combo box using a string value.
    	toCityComboBox.Select("London");
    }

Back to top

## Set the date in a DatePicker control

This example locates and sets the date of the date picker control.

    private void ChooseFlightDate()
    {
    	// Identify the date picker control. The date picker is identified through the main window and not directly from the Flight GUI applications.
    	var flightDatePicker = Desktop.Describe<IWindow>(new WindowDescription
    	{
    		ObjectName = @"Micro Focus MyFlight Sample",
    		FullType = @"window",
    		WindowTitleRegExp = @"Micro Focus MyFlight Sample"
    	}).Describe<ICalendar>(new CalendarDescription
    	{
    		ObjectName = @"datePicker"
    	});
    	// Select the flight date.
    	flightDatePicker.SetDate(new DateTime(year:2025, month:8, day:1));
    }

Back to top

## Select a row in a DataGrid control

This example selects a row in the data grid.

    private void SelectFlight()
    {
    	// Identify the flights data grid (ITable).
    	var flightsDataGrid = _flightGUIAapplicationWindow.Describe<ITable>(new TableDescription
    	{
    		ObjectName = @"flightsDataGrid"
    	});

    	// Select the third row in the data grid.
    	flightsDataGrid.SelectRow(2);

    	var selectFlightButton = _flightGUIAapplicationWindow.Describe<IButton>(new ButtonDescription
    	{
    		Text = @"SELECT FLIGHT",
    		ObjectName = @"selectFlightBtn"
    	});

    	// Click the "Select Flight" button.
    	selectFlightButton.Click();
    }

Back to top

## Change a toggle button state

This example locates a toggle button and changes the toggle button state.

     [Test]
    public void TestWpfToggleButton()
    {
    	// Identify the application and assign it to an IWindow object.
    	var appMainWindow = Desktop.Describe<IWindow>(new WindowDescription
    	{
    		ObjectName = @"MainWindow",
    		FullType = @"window",
    		WindowTitleRegExp = @"MainWindow"
    	});

    	// Identify the WPF toggle button.
    	var buttonWithToggleButtonSupport = appMainWindow.Describe<IButton>(new ButtonDescription
    	{
    		Text = @"Toggle Button",
    		ObjectName = @"Button4"
    	});
    	IToggleButton toggleButton = buttonWithToggleButtonSupport.ToggleButton;

    	// Sets the toggle button's state to checked.
    	toggleButton.Set(CheckedState.Checked);

    	// Changes the toggle button state.
    	if (toggleButton.IsChecked)
    	{
    		toggleButton.Set(CheckedState.Unchecked);
    	}
    	else
    	{
    		toggleButton.Set(CheckedState.Checked);
    	}
    }

Back to top

Tips to improve your search results... UFT Developer .NET SDK Reference Version 15.0-15.0.2 UFT Developer SDK Reference All View Local Help Center View Online Help Center back Go back in browser history forward Go forward in browser history Remove search highlights next topic Go to next topic previous topic Go to previous topic Print the current topic Version: