Как переключиться с представления настольного приложения на веб-просмотр и обратно?

Я дохожу до определенного момента в настольном приложении, которое я автоматизирую, и мне нужно щелкнуть ссылку и продолжить автоматизацию в браузере. Ссылка автоматически переходит в Internet Explorer. (Будем признательны за предложения о том, как скопировать и вставить в Chrome). Мне нужно знать, как переключаться с рабочего стола на веб-просмотр, автоматизировать веб-просмотр и вернуться к представлению рабочего стола.

Пока что это самое близкое, что я нашел, решает проблему. Я новичок в C #, поэтому я знаю теорию того, что я хотел бы сделать, но не то, как это реализовать. http://appium.io/docs/en/writing-running-appium/web/hybrid/. Я дошел до того, что записал контекст в свой вывод. Я еще не смог установить или сбросить его.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Windows;
using OpenQA.Selenium.Remote;

namespace UnitTestProject2
{
    [TestClass]
    public class GoldTrakPCTest
    {
        [TestMethod]
        public void TestMethod1()
        { 
            AppiumOptions options = new AppiumOptions();
            options.AddAdditionalCapability("deviceName", "WindowsPC");
            options.AddAdditionalCapability("platformName", "Windows");
            options.AddAdditionalCapability("app", "XXXX -Path to desktop app");
            WindowsDriver<WindowsElement> windowsDriver = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723/"), options);
            Thread.Sleep(1500);
            windowsDriver.FindElementByAccessibilityId("1006").SendKeys("Username");
            windowsDriver.FindElementByAccessibilityId("1003").SendKeys("Password");
            windowsDriver.FindElementByAccessibilityId("1001").SendKeys("354 - B - Mariner");
            windowsDriver.FindElementByAccessibilityId("1").Click();
            var myVar = windowsDriver.FindElementByAccessibilityId("59393");
            Thread.Sleep(4200);
            //Trace.WriteLine(windowsDriver.FindElementByName("WILLY WONKA"));
            windowsDriver.FindElementByName("WILLY WONKA").Click();
            Thread.Sleep(1000);
            windowsDriver.FindElementByAccessibilityId("1310").Click();
            Thread.Sleep(4000);
            windowsDriver.FindElementByName("Documents").Click();
            Thread.Sleep(4000);
            windowsDriver.FindElementByAccessibilityId("1011").Click();
            windowsDriver.FindElementByAccessibilityId("1011").Click();
            windowsDriver.FindElementByName("Doc Set - WI Esign Documents").Click();
            windowsDriver.FindElementByAccessibilityId("4750").Click();
            Thread.Sleep(4000);
            windowsDriver.FindElementByName("OK").Click();
            windowsDriver.FindElementByAccessibilityId("2034").Click();
            Thread.Sleep(4000);
            string Context = windowsDriver.Context;
            Trace.WriteLine(Context);
            /*List<string> AllContexts = new List<string>();
            foreach (var context in (windowsDriver.Contexts))
            {
                AllContexts.Add(context);
                Trace.WriteLine(context);
            }*/
            //Trace.WriteLine(AllContexts, "Hello");
            //options.AddAdditionalCapability("")
            //windowsDriver.FindElementByName("WILLY WONKA").Click();
            //windowsDriver.FindElementByName("Next").Click();



            Thread.Sleep(6000);

            //windowsDriver.Close();
        }
    }
}

Мне нужно знать, как изменить контекст и можно ли переключаться между собственными настольными приложениями Windows и браузерами и как это сделать.


person Jackson    schedule 13.05.2019    source источник


Ответы (1)


Это возможно. У меня есть 2 настольных приложения и 1 веб-приложение, которые работают в тандеме. Однако у меня есть один вопрос относительно «Ссылка автоматически переходит в Internet Explorer. (Мы будем благодарны за предложения о том, как скопировать и вставить ее в Chrome)».

это потому, что Internet Explorer является проводником по умолчанию в Windows?

Переключение контекста между приложениями.

Как только вы щелкните элемент окна, который открывает Интернет (IE или Chrome), вам нужно будет создать экземпляр Webdriver (IE / chrome) и присоединить его к процессу браузера.

Метод тестовой инициализации, который запускается / подключается к существующему сеансу: Как использовать / прикрепить существующий браузер с помощью Selenium?

person Avinash    schedule 13.06.2019
comment
Спасибо. Это не браузер по умолчанию в ОС. Это единственная ссылка, которая будет работать для приложения, которое я тестирую. - person Jackson; 14.06.2019