Связывание селена с электронным каркасом (C#)

Я уже написал несколько строк кода на C# с использованием веб-драйвера Selenium. Поскольку мое приложение было перенесено в среду Electron, все изменилось и, честно говоря, я не знаю, как с этим справиться прямо сейчас.

Не могли бы вы объяснить это мне? Какие шаги я должен предпринять для простого запуска... Я хотел бы продолжить свою работу в текущем проекте (selenium, C#), но я не уверен, что это возможно, или я должен полностью начать с нуля, используя другой язык и фреймворк?

Я читал о Spectron, и проверил интернет-ресурсы, такие как stackru, однако я все еще на грани неосведомленности...

3 ответа

Решение

Спектрон с мокко должен быть быстрее.

Но все же вот что вам нужно. Это Java и Selenium.

System.setProperty("webdriver.chrome.driver","C:\\electron-chromedriver\\bin\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary("C:\\Users\\app.exe");
chromeOptions.addArguments("start-maximized");
DesiredCapabilities capability = new DesiredCapabilities();
capability.setCapability(CapabilityType.BROWSER_NAME, "Chrome");
capability.setCapability("chromeOptions", chromeOptions);       
driver = new ChromeDriver(chromeOptions);  

Я использовал упакованное электронное приложение для двоичного (то есть) app.exe.

Я думаю, что это то, что вам нужно.

Попробуйте это для инициализации приложения Electron:

      using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;

namespace Selenium_Demo
{
    class Selenium_Demo
    {

        IWebDriver driver;

        [SetUp]
        public void Start_Browser()
        {

            ChromeOptions options = new ChromeOptions();
            ChromeDriverService chromeService = ChromeDriverService.CreateDefaultService(@"C:\\selenium\\chromedriver_win32v\\chromedriver.exe",
         @"C:\\Program Files\\Cerebrata\\Cerebrata.exe");

            driver = new ChromeDriver(chromeService, options);
        }

        [Test]
        public void Test()
        {
            System.Threading.Thread.Sleep(6000);

            Console.WriteLine("Test Passed");
        }

        [TearDown]
        public void Close_Browser()
        {
            driver.Quit();
        }
    }
}

Описанное ниже относится к использованию Electron с .Net C # OpenQA.Selenium.

Если вы хотите запустить электронное приложение, которое разрабатывается (состоит из файлов index.html, main.js и т. Д.), Вам необходимо добавить следующие параметры (обратите внимание на ' app = ' в аргументе cmd):

      var options = new ChromeOptions();
options.BinaryLocation = @"your_path_to_electron\electron.exe";
options.AddArgument(@" app=path_to_folder_with_your_electron_app_src");

Но если вы хотите запустить упакованное электронное приложение (*.exe), достаточно использовать:

      var options = new ChromeOptions();
options.BinaryLocation = @"path_to_folder_with_your_electron_app\your_electron_app.exe";

Также вы можете запустить любую версию chromedriver.exe :

      var service = ChromeDriverService.CreateDefaultService(path_to_folder_with_driver);
var driver = new ChromeDriver(service, options);

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

Другие вопросы по тегам