【问题标题】:Linking selenium with electron framework (c#)将硒与电子框架联系起来(c#)
【发布时间】:2018-07-02 12:30:50
【问题描述】:

我已经使用 Selenium webdriver 在 C# 中编写了几行代码。随着我的应用程序被转移到 Electron 框架,一切都发生了变化,老实说,我现在不知道如何处理它。

你能帮我澄清一下吗?我应该采取哪些步骤来简单开始...我想继续我在当前项目中的工作(selenium,C#),但我不确定这是否可行,或者我应该完全从头开始使用不同的语言和框架?

我已经阅读了有关 Spectron 的信息,并检查了诸如 stackoverflow 之类的互联网资源,但是我仍然处于不知情的地步……

【问题讨论】:

  • 如果你是从头开始,你应该试试 ketlon studio 来自动化 .. 真的很简单很酷
  • selenium 自动化浏览器
  • @CoreyGoldberg 你是对的,但是电子应用程序运行在它自己的 chromedriver.so 上,添加了一些功能,我们也自动化了电子应用程序。但是 spectron 是最合适的。

标签: c# selenium selenium-webdriver electron spectron


【解决方案1】:

带有 mocha 的 Spectron 应该更快。

但这仍然是您需要的。这是 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

我认为这就是你所需要的。

【讨论】:

    【解决方案2】:

    下面的描述与使用 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);
    

    这可能会有所帮助,因为我知道不同的电子应用程序是基于使用不同版本的驱动程序构建的。

    【讨论】:

      【解决方案3】:

      试试这个用于电子应用程序初始化:

      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();
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-09
        • 2019-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多