繁体   English   中英

从外部Chrome(即CMD或C#)调用Google Chrome浏览器导航

[英]Invoke Google Chrome Navigation from outside chrome, i.e. CMD or C#

寻找一种解决方案,以通过外部流程从Chrome外部调用Chrome中的Navigation。

我们拥有旧版WinForm软件,需要浏览需要运行Chrome的Angular HTML5应用。 (我对此无能为力。)

类似于:

    Process process = new Process();
    process.StartInfo.FileName = 
      @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
    process.StartInfo.Arguments = "google.com" + " --new-window";
    process.Start();

然后通过某种方式进入该过程,并让SAME TAB执行导航。

magic.navigateTab1(www.anothersite.com);

我完全假设它不容易实现,解决方案可能不使用Process等。只是,无论如何要从外部chrome完成它?

无论哪种解决方案都不需要在C#代码库中安装>〜5MB的内存。理想情况下,不建议安装。

编辑1:也许使用这样的东西。
https://sites.google.com/a/chromium.org/chromedriver/

我用硒来实现这一目标。

首先,您必须通过Nugget将以下软件包添加到解决方案中

Selenium.WebDriver
Selenium.Chrome.WebDriver;

然后引用以下名称空间

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

在类根目录上创建以下属性

IWebDriver driver;

在您的类构造函数上,添加以下代码以创建由Selenium处理的新的Chrome窗口

driver = new ChromeDriver();

然后在您的按钮上添加以下内容

// Switch the action target to the first tab opened on chrome instace handled by Selenium
driver.SwitchTo().Window(driver.WindowHandles.First());
// Go to a given URL
driver.Navigate().GoToUrl("http://www.yourURL.com.br");

您的代码应该像这样

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace configure
{
    public partial class Form1 : Form
    {
        IWebDriver driver;
        public Form1()
        {
            InitializeComponent();
            driver = new ChromeDriver();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            driver.SwitchTo().Window(driver.WindowHandles.First());
            driver.Navigate().GoToUrl("http://www.yourURL.com.br");
        }
    }
}

希望这能解决您的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM