[英]How to invoke Constructors by String in C# (i.e. by Reflection)?
[英]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.