我是一个非常新手的程序员.你们中的任何人都知道如何进行网络自动化C#吗?基本上,我只想在网上自动实现一些简单的操作.打开网络链接后,我只想自动执行以下操作.
我怎么能这样做C#?我的朋友介绍我使用Powershell,但我想.Net也提供这种类型的库.有关我的任何建议或链接吗?
Fun*_*eng 15
您可以使用该System.Windows.Forms.WebBrowser控件(MSDN文档).对于测试,它允许您执行可在浏览器中完成的操作.它无需任何额外的工作即可轻松执行JavaScript.如果出现问题,您将能够直观地看到该网站所处的状态.
例:
private void buttonStart_Click(object sender, EventArgs e)
{
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
webBrowser1.Navigate("http://www.wikipedia.org/");
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement search = webBrowser1.Document.GetElementById("searchInput");
if(search != null)
{
search.SetAttribute("value", "Superman");
foreach(HtmlElement ele in search.Parent.Children)
{
if (ele.TagName.ToLower() == "input" && ele.Name.ToLower() == "go")
{
ele.InvokeMember("click");
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
要回答您的问题:如何选中复选框
对于HTML:
<input type="checkbox" id="testCheck"></input>
Run Code Online (Sandbox Code Playgroud)
代码:
search = webBrowser1.Document.GetElementById("testCheck");
if (search != null)
search.SetAttribute("checked", "true");
Run Code Online (Sandbox Code Playgroud)
实际上,具体的"如何"很大程度上取决于实际的HTML.
为了处理您的多线程问题:
private delegate void StartTestHandler(string url);
private void StartTest(string url)
{
if (InvokeRequired)
Invoke(new StartTestHandler(StartTest), url);
else
{
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
webBrowser1.Navigate(url);
}
}
Run Code Online (Sandbox Code Playgroud)
InvokeRequired,检查当前线程是否是UI线程(实际上,是创建表单的线程).如果不是,那么它将尝试在所需的线程中运行StartTest.
如果你想模拟一个真正的浏览器,那么WatiN将非常适合你.(Selenium是另一种选择,但我不建议你这样做).
如果要在HTTP级别上工作,请使用WebRequest和相关类.
请查看SimpleBrowser,它是一个相当成熟的轻量级浏览器自动化库。
https://github.com/axefrog/SimpleBrowser
从页面:
SimpleBrowser是轻量级但功能强大的浏览器自动化引擎,专为自动化和测试方案而设计。它提供了直观的API,使您可以轻松使用各种匹配技术快速提取页面的特定元素,然后使用Click(),SubmitForm()等方法与这些元素进行交互。SimpleBrowser不支持JavaScript,但允许在提交或导航之前手动操作用户代理,引荐来源网址,请求标头,表单值和其他值。
| 归档时间: |
|
| 查看次数: |
35973 次 |
| 最近记录: |