如何用第三方程序自动勾选单选按钮
How to check radio button automatically with third-party program
我正在制作一个提供多项选择测试的网站,但我懒得用人工方式测试它。我想编写一个简单的 C# .Net winform 程序,帮助我检查网络浏览器中问题的每个 A(或 B、C、D)单选按钮。我想知道 winform 应用程序是否可以做到这一点。
感谢阅读:)
据我了解,您的主要目标不是编写 C# winforms 应用程序,而只是测试您的 Web 表单。因此,与其花时间创建专用的 C# 应用程序来测试您的网站,我建议您研究专用的 Web 测试解决方案。
这里已经有一个非常相似的问题:
How apply Unit tests in ASP.NET webforms
如果您不喜欢那样,那么另一种选择是为 FireFox iMacros extension 生成测试脚本。语法相当简单。
一般来说,您应该查看用于测试 Web 表单的现有解决方案的主题。不建议仅仅为此目的创建专用解决方案。
编辑:
好的,从您的评论中我了解到在 WinForms 中拥有此解决方案对您来说很重要,因此我将纠正我的回答。
要在 WinForms 中执行此操作,请执行以下步骤:
- 使用 WebBrowser class - 将相关的 WebBrowser 控件添加到您的 winform。
- 添加一个按钮,你可以调用它"btnTest"。
- 在编辑器中双击此按钮,这样就创建了一个 btnTest_Click(...) 方法存根。
- 在代码中,像这样设置所需的浏览器地址字符串:
string address = @"D:\path\to\my\file.html"
或者如果需要,请使用 http:// 地址。
- 使用 WebBrowser.Navigate 方法导航到此地址,如下所示:
webBrowser.Navigate(new Uri(address));
这可以在 InitializeComponent();
之后的 Form1 的构造函数中全部 运行 或您想要的任何其他地方(也许在另一个与地址文本框结合的按钮上?)。
现在为您的测试按钮代码。要执行测试,您可以使用 WebBrowser.Document's methods to get HtmlElements 并对它们执行操作。有关详细信息,请参阅提供的文档链接。
一些示例:
HtmlElement checkboxGenderFemale = webBrowser.Document.GetElementById("female");
checkboxGenderFemale.InvokeMember("CLICK");
这将模拟点击并选中给定的复选框。请记住为所有元素分配 ID。要填写文本输入,您可以使用以下代码片段:
HtmlElement nameInput = webBrowser.Document.GetElementById("firstname");
nameInput.SetAttribute("value", "NewName");
如您所见,您可以轻松地模拟点击和修改元素的属性。您可以将这些代码示例放入 btnTest_Click(...)
方法中,看看它是如何工作的。如果您已经在 Form1 的构造函数中完成了导航,则该表单应该会打开并显示已加载的页面。点击btnTest后,会进行相关测试
我正在制作一个提供多项选择测试的网站,但我懒得用人工方式测试它。我想编写一个简单的 C# .Net winform 程序,帮助我检查网络浏览器中问题的每个 A(或 B、C、D)单选按钮。我想知道 winform 应用程序是否可以做到这一点。
感谢阅读:)
据我了解,您的主要目标不是编写 C# winforms 应用程序,而只是测试您的 Web 表单。因此,与其花时间创建专用的 C# 应用程序来测试您的网站,我建议您研究专用的 Web 测试解决方案。 这里已经有一个非常相似的问题: How apply Unit tests in ASP.NET webforms
如果您不喜欢那样,那么另一种选择是为 FireFox iMacros extension 生成测试脚本。语法相当简单。
一般来说,您应该查看用于测试 Web 表单的现有解决方案的主题。不建议仅仅为此目的创建专用解决方案。
编辑:
好的,从您的评论中我了解到在 WinForms 中拥有此解决方案对您来说很重要,因此我将纠正我的回答。 要在 WinForms 中执行此操作,请执行以下步骤:
- 使用 WebBrowser class - 将相关的 WebBrowser 控件添加到您的 winform。
- 添加一个按钮,你可以调用它"btnTest"。
- 在编辑器中双击此按钮,这样就创建了一个 btnTest_Click(...) 方法存根。
- 在代码中,像这样设置所需的浏览器地址字符串:
string address = @"D:\path\to\my\file.html"
或者如果需要,请使用 http:// 地址。 - 使用 WebBrowser.Navigate 方法导航到此地址,如下所示:
webBrowser.Navigate(new Uri(address));
这可以在 InitializeComponent();
之后的 Form1 的构造函数中全部 运行 或您想要的任何其他地方(也许在另一个与地址文本框结合的按钮上?)。
现在为您的测试按钮代码。要执行测试,您可以使用 WebBrowser.Document's methods to get HtmlElements 并对它们执行操作。有关详细信息,请参阅提供的文档链接。
一些示例:
HtmlElement checkboxGenderFemale = webBrowser.Document.GetElementById("female");
checkboxGenderFemale.InvokeMember("CLICK");
这将模拟点击并选中给定的复选框。请记住为所有元素分配 ID。要填写文本输入,您可以使用以下代码片段:
HtmlElement nameInput = webBrowser.Document.GetElementById("firstname");
nameInput.SetAttribute("value", "NewName");
如您所见,您可以轻松地模拟点击和修改元素的属性。您可以将这些代码示例放入 btnTest_Click(...)
方法中,看看它是如何工作的。如果您已经在 Form1 的构造函数中完成了导航,则该表单应该会打开并显示已加载的页面。点击btnTest后,会进行相关测试