自动打开google chrome,单击按钮,然后关闭chrome C#WinForms
我有一个任务,正如我在主题中写的那样。我需要打开谷歌浏览器的网页,然后我想点击按钮,关闭浏览器。我希望它是Windows窗体.net 4.0,并用C#编写。我曾尝试过这样做: System.Diagnostics.Process.Start(@“chrome.exe”,“网页”) 这很好,但我不知道如何强制应用程序点击页面上的按钮并关闭chrome自动打开google chrome,单击按钮,然后关闭chrome C#WinForms,c#,.net,windows,forms,webpage,C#,.net,Windows,Forms,Webpage,我有一个任务,正如我在主题中写的那样。我需要打开谷歌浏览器的网页,然后我想点击按钮,关闭浏览器。我希望它是Windows窗体.net 4.0,并用C#编写。我曾尝试过这样做: System.Diagnostics.Process.Start(@“chrome.exe”,“网页”) 这很好,但我不知道如何强制应用程序点击页面上的按钮并关闭chrome 感谢您的帮助实现这一点的最佳方法是创建一个小的HTML文件,该文件将使用Javascript为您实现这一点。这样你就可以在chrome中打开这个文件
感谢您的帮助实现这一点的最佳方法是创建一个小的HTML文件,该文件将使用Javascript为您实现这一点。这样你就可以在chrome中打开这个文件,它会帮你完成。如果您需要特定代码,请告诉我。几个月前我不得不这么做
public static void TryWebBrowser()
{
bool _jsLoaded = false;
string _directory = AppDomain.CurrentDomain.BaseDirectory;
System.Diagnostics.ProcessStartInfo _sinfo = new
System.Diagnostics.ProcessStartInfo(_directory + "loginFile.html");
System.Diagnostics.Process.Start(_sinfo);
while (_jsLoaded == false)
{
System.Diagnostics.Process[] _runningProcesses =
System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process _p in _runningProcesses)
{
if (_p.MainWindowTitle.Contains("Jaspersoft"))
{
_jsLoaded = true;
break;
}
}
}
}
有点像这样
<html>
<head>
<title>Launching Jaspersoft</title>
<script src="other.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function submitForm() {
document.getElementById("j_username").value = uid
document.getElementById("j_password").value = pwd
document.loginForm.action = action
document.loginForm.submit()
}
</script>
</head>
<body onload="submitForm()">
<form name="loginForm" method="post" action="">
<input type="hidden" value="" name="j_username" id="j_username" />
<input type="hidden" value="" name="j_password" id="j_password" />
</form>
</body>
</html>
推出Jaspersoft
函数submitForm(){
document.getElementById(“j_用户名”).value=uid
document.getElementById(“j_密码”).value=pwd
document.loginForm.action=操作
document.loginForm.submit()
}
other.js包含动态写入的uid和密码变量,没有其他变量。使用:
using System.Diagnostics;
在按钮单击事件中写入:
Process[] AllProcess = Process.GetProcesses();
foreach (var process in AllProcess)
{
if (process.MainWindowTitle != "")
{
string s = process.ProcessName.ToLower();
if (s == "chrome" )
process.Kill();
}
}
改编自:
编辑:
上述代码负责关闭部分。但是,对于单击按钮
如果Chrome能够以一种简单的方式向外部应用程序公开按钮点击之类的方法,那将是令人惊讶的。
您可能需要编写自己的扩展名see:,否则必须通过win forms中的web浏览器控件打开网页并通过它捕获事件 我不知道您的全部要求,但我认为您可能希望了解一些自动化工具,如selenium 您可以在这里查看入门指南 它是用Java编写的,但他们也有.net api:
希望这能有所帮助。我想你可以更轻松地完成这项工作,比如你想关闭浏览器,通过windows窗体上的按钮显示你的网页?我说的对吗?你不觉得用HttpClient发送Chrome会发送的请求更好吗?使用类似Fiddler的东西来获得确切的请求…Syed->如何关闭并不重要-可以像你说的那样,或者不管怎样,Dan->是的,如果你认为这样更好,请帮助我如何开始。例如,你有没有得到任何材料的教程或链接?@Roland-打开一个页面并点击一个按钮似乎不是什么主要的功能需求。没有人会看这个页面,谁在乎它是如何呈现的呢?话虽如此,如果您不能在其中使用简单的html表,那么您的html就有严重问题。内置的WebBrowser使用IE渲染引擎,所以IE可以做的任何事情,它都可以做。好了,现在我知道chrome的打开和关闭程度-但是我如何才能在页面上单击正确的按钮?我理解您需要做什么,但如果chrome以简单的方式将按钮单击等方法公开给外部应用程序,我会感到惊讶。您可能需要编写自己的扩展名see:或必须通过win forms中的web浏览器控件打开网页并通过它捕获事件。将浏览器窗口设为活动窗口。然后使用SendKeys.SendWait({ENTER}”);如果默认按钮是请求的按钮。或者添加一些“{TAB}”以访问请求的按钮