Winforms 如何使用第三方程序自动检查单选按钮

Winforms 如何使用第三方程序自动检查单选按钮,winforms,testing,radio,Winforms,Testing,Radio,我正在制作一个提供多项选择测试的网站,但我太懒了,无法用人工的方式进行测试。我想编写一个简单的C#.Net winform程序,帮助我在web浏览器中检查问题的每个a(或B、C、D)单选按钮。我想知道winform应用程序是否可以做到这一点 感谢阅读:)据我所知,您的主要目标不是编写C#winforms应用程序,而只是测试您的web表单。因此,与其花时间创建专门的C#应用程序来测试您的网站,我建议您研究专门的web测试解决方案。 这里已经有一个非常相似的问题: 如果您不喜欢,那么另一个选项是为

我正在制作一个提供多项选择测试的网站,但我太懒了,无法用人工的方式进行测试。我想编写一个简单的C#.Net winform程序,帮助我在web浏览器中检查问题的每个a(或B、C、D)单选按钮。我想知道winform应用程序是否可以做到这一点


感谢阅读:)

据我所知,您的主要目标不是编写C#winforms应用程序,而只是测试您的web表单。因此,与其花时间创建专门的C#应用程序来测试您的网站,我建议您研究专门的web测试解决方案。 这里已经有一个非常相似的问题:

如果您不喜欢,那么另一个选项是为测试生成测试脚本。语法相当简单

一般来说,您应该研究用于测试web表单的现有解决方案的主题。不建议仅为此目的创建专用解决方案


编辑:

好的,从您的评论中,我看到在WinForms中使用此解决方案对您很重要,因此我将更正我的答案。 要在WinForms中执行此操作,请执行以下步骤:

  • 使用类-将相关WebBrowser控件添加到winform
  • 添加一个按钮,您可以称之为“btnTest”
  • 在编辑器中双击此按钮,创建btnTest_click(…)方法存根
  • 在代码中,将所需的浏览器地址字符串设置为:
    string address=@“D:\path\to\my\file.html”
    ,如果需要,可以使用http://地址
  • 使用如下方法导航到此地址:
    webBrowser.Navigate(新Uri(地址))
  • 这可以在
    InitializeComponent()之后在Form1的构造函数中运行
    或任何您想要的地方(在另一个按钮上,可能与地址文本框相结合?)。 现在是测试按钮代码。要执行测试,您可以使用获取并对其执行操作。有关详细信息,请参阅提供的文档链接

    一些例子:

    HtmlElement checkboxGenderFemale=webBrowser.Document.GetElementById(“女性”);
    checkboxGenderFemale.InvokeMember(“单击”);
    
    这将模拟单击并选中给定的复选框。记住为所有元素分配ID。要填写文本输入,可以使用以下代码段:


    如您所见,您可以轻松地模拟单击和修改元素的属性。您可以将这些代码示例放在
    btnTest\u Click(…)
    方法中,看看它是如何工作的。如果您已经在Form1的构造函数中完成了导航,那么表单应该在页面已经加载的情况下打开。单击btnTest后,将执行相关测试。

    实际上,我对编写此c#winform非常感兴趣,我只是想编写它以了解更多信息,我不想下载,因为编写和使用我自己的软件是我的爱好之一:)请帮我看看。老实说,我不认为WinForms是这个问题的主要焦点,我认为这是web测试。用相关信息更新了我的帖子。希望对您有所帮助。感谢您的帮助,但我遇到了一个问题,即即使在我使用webBrowser.Navigate(新Uri(地址))之后,webBrowser.Document仍然为空,但是我想要的是在我当前的Firefox浏览器的标签上点击它,这样我就可以清楚地看到它在浏览器上了。你导航到一个合适的、有效的URI了吗?您应该会看到加载到表单中的网页。只有在网页没有正确加载的情况下才会返回Null。正如我所说的,Firefox扩展(如iMacros)是在Firefox上测试的。如果您想使用C#和WinForms进行测试,WebBrowser类就是这样。这是两个独立的应用程序——Firefox和WinForms应用程序。在某种程度上,不同的世界。您不能从C#应用程序级别与Firefox交互。这就是为什么我为您提供了一个如何在Firefox中测试的解决方案(建议使用iMacros,因为它似乎是这里的最佳选择)和一个针对WinForms的C#解决方案,因为您需要它。
    HtmlElement nameInput = webBrowser.Document.GetElementById("firstname");
    nameInput.SetAttribute("value", "NewName");