2

I am using Win App Driver to automate WPF application, Our WPF application is click once application. When I launch the application I noticed driver is null.

    private string notepadAppid = 
    @"https://saqa.xyz.biz/abcnew/testets.Shell.Applications";       
    protected static OpenQA.Selenium.Appium.Windows.WindowsDriver<WindowsElement> driver;        
    Uri urls = new Uri("http://127.0.0.1:4723");
    
     AppiumOptions opt = new AppiumOptions();
                opt.AddAdditionalCapability("app", notepadAppid);
                opt.AddAdditionalCapability("deviceName", "WindowsPC");
                driver = new WindowsDriver<WindowsElement> (new Uri("http://127.0.0.1:4723"), opt, 
       TimeSpan.FromMinutes(1));

I noticed 'driver' is null, I am getting exception: "Failed to locate opened application window with appId: https://saqa.xyz.biz/abcnew/testets.Shell.Applications, and processId: -1. Thanks you in advance.

1 Answer 1

0

As mentioned here, you need to check the driver is null.

//******************************************************************************
//
// Copyright (c) 2017 Microsoft Corporation. All rights reserved.
//
// This code is licensed under the MIT License (MIT).
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
//******************************************************************************

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.Appium.Windows;
using OpenQA.Selenium.Remote;
using System;

namespace CalculatorTest
{
    public class CalculatorSession
    {
        // Note: append /wd/hub to the URL if you're directing the test at Appium
        private const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";
        private const string CalculatorAppId = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App";

        protected static WindowsDriver<WindowsElement> session;

        public static void Setup(TestContext context)
        {
            // Launch Calculator application if it is not yet launched
            if (session == null)
            {
                // Create a new session to bring up an instance of the Calculator application
                // Note: Multiple calculator windows (instances) share the same process Id
                DesiredCapabilities appCapabilities = new DesiredCapabilities();
                appCapabilities.SetCapability("app", CalculatorAppId);
                appCapabilities.SetCapability("deviceName", "WindowsPC");
                session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
                Assert.IsNotNull(session);

                // Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times
                session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);
            }
        }

        public static void TearDown()
        {
            // Close the application and delete the session
            if (session != null)
            { 
                session.Quit();
                session = null;
            }
        }
    }
}
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks for your response @Akif.....in my case I am getting error at: driver = new WindowsDriver<WindowsElement> (new Uri("127.0.0.1:4723"), opt, TimeSpan.FromMinutes(1)); driver is null.
After getting exception, application is opening. Noticed driver is null.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.