从网站获取 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.netc# 可以实现的任何方法(如果您知道任何更容易的方法,请告诉我)。我基本上希望程序有一个内置的网络浏览器,看看它在做什么,如果这是不可能的,或者有办法用控制台更快地完成它,我很高兴听到。

在无数个论坛中搜索后,我发现我可以用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 对象中获取项目作为字符串

为啥在c#,mvc中退出并按下浏览器后退按钮时会转到一个页面

无法从网站表单填充 wampserver 数据库?

网络技术——当在浏览器中输入一个网址并按下回车后发生的事情