【问题标题】:Access ASP:Text Value with Watin使用 Watin 访问 ASP:Text 值
【发布时间】:2015-01-27 12:49:53
【问题描述】:

我几天前才开始使用 watin,但遇到了一个小问题。我正在编写一个非常简单的测试来更改UserName 的文本。代码是:

标记

<div class="col-md-10">
<asp:TextBox runat="server" autocomplete="off" ID="UserName" CssClass="form-control" placeholder="Username" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="UserName"
CssClass="text-danger" ErrorMessage="The Username field is required." />
</div>

我的测试代码是:

[TestClass]
public class TestClass
{
    [TestMethod]
    public void TestMethod1()
    {
        using (var browser = new IE("My Url"))
        {
            browser.TextField(Find.ByName("UserName")).TypeText("some text");
        }
    }
}

当我运行测试时,我不断收到以下错误:

找不到 INPUT(隐藏)或 INPUT(密码)或 INPUT(文本)或 INPUT(文本区域)或 TEXTAREA 元素标记匹配条件:属性 'name' 等于 'UserName' at about:blank

我遇到了 this 问题,但仍然遇到同样的错误。有人可以告诉我哪里出错了。提前感谢您的所有帮助和支持。

【问题讨论】:

  • 浏览器中渲染的 HTML 源代码是什么? HTML 标签的 ID 通常取决于 ASP 文件中包含的元素,因此文本框的名称或 ID 可能不仅仅是UserName
  • 您能否使用设计文件中&lt;asp:TextBox /&gt; 元素的HTML 代码更新您的问题?

标签: c# asp.net testing watin


【解决方案1】:

使用Find.ById 代替Find.ByName

browser.TextField(Find.ById("UserName")).TypeText("some text");

【讨论】:

  • 感谢您的快速响应,但它给出了完全相同的错误
  • 你能在源代码中查看文本框的 id 是什么吗?
  • 我刚刚检查了 id,它是 MainContent_UserName 我已经在我的代码中更改了它,但仍然得到同样的错误:/
  • 然后尝试将 Name 属性添加到 texbox 并使用 Find.ByName。
  • 文本框服务器控件没有 name 属性还是我遗漏了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多