从网站获取 HTML ID 以填写信息并按下 c# 或 vb.net 中的按钮
Posted
技术标签:
【中文标题】从网站获取 HTML ID 以填写信息并按下 c# 或 vb.net 中的按钮【英文标题】:Take HTML ID from a website to fill information and press buttons in c# or vb.net 【发布时间】:2017-11-29 23:30:06 【问题描述】:我想编写一个程序,它会自动按下网站中的一些按钮并通过获取 html 的 id 在文本区域中填充信息。
我想知道使用vb.net
或c#
可以实现的任何方法(如果您知道任何更容易的方法,请告诉我)。我基本上希望程序有一个内置的网络浏览器,看看它在做什么,如果这是不可能的,或者有办法用控制台更快地完成它,我很高兴听到。
在无数个论坛中搜索后,我发现我可以用phantom.js
做这样的事情,但老实说,我更喜欢用我更熟悉的东西来做。
我不是要你为我做这些,只是一个简单的链接到我可以找到信息的地方就可以了。
**编辑
我使用 AHK 和 vb.net 来做到这一点
【问题讨论】:
我认为 Selenium 会很有用。请参考此链接:toolsqa.com/selenium-c-sharp 【参考方案1】:在 Windows 表单中,您可以嵌入 webbrowser 控件并以编程方式操作 HTML 文档的 DOM 内容。您还可以通过导入 Microsoft.mshtml 来进一步控制操作 DOM,它扩展了 .Net 框架提供的 html 元素的基本功能。
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
this.webBrowser1.Navigated += WebBrowser1_Navigated;
private void WebBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
var doc = webBrowser1.Document;
doc.InvokeScript("alert('hello')");
var forms =doc.GetElementsByTagName("form");
private void btnGo_Click(object sender, EventArgs e)
webBrowser1.Navigate(txtUrl.Text);
【讨论】:
不要使用Navigated
事件。它仅在网络浏览器开始加载网站时引发,因此它可能没有加载您要修改的所有元素。请改用DocumentCompleted
,因为它会在网站完全加载时引发(注意:由于iframes
和类似元素,可以多次引发)。以上是关于从网站获取 HTML ID 以填写信息并按下 c# 或 vb.net 中的按钮的主要内容,如果未能解决你的问题,请参考以下文章
excel合并单元格取消后每个单元格都填写上面的信息及每列增加空白行
一旦选择并按下 QButton,如何从 QListWidget 对象中获取项目作为字符串