【问题标题】:WatiN clicks the button but nothing happensWatiN 单击按钮但没有任何反应
【发布时间】:2014-12-17 02:27:07
【问题描述】:

我在页面上有一个文本字段和一个按钮:

<textarea class="txCS" id="text-area"></textarea>
<span id="search-button">Search</span>

我尝试的很简单,在文本字段中写一些文本,然后点击“搜索”。

browser.TextField("text-area").TypeText("Some Text");
browser.Span("search-button").Click();

TypeText() 有效,我看到我的文本写在文本字段上,Click() 也有效,因为我看到 WatiN 在单击按钮时突出显示它,但单击按钮时没有任何反应。

当我自己单击按钮时,仍然没有任何反应,但是当我在文本字段中手动输入内容并单击“搜索”时,一切正常,就好像该页面知道人类是否正在与该页面进行交互并允许搜索...

我监控了当我在文本字段中键入某些内容时触发的事件,然后尝试使用 WatiN 触发它们:

searchBox.FireEvent("onmouseover");
searchBox.FireEvent("onmousemove");
searchBox.FireEvent("onmousedown");
searchBox.FireEvent("onfocus");
searchBox.FireEvent("onmouseup");
searchBox.FireEvent("onclick");
searchBox.FireEvent("onkeydown");
searchBox.FireEvent("onkeypress");
searchBox.FireEvent("onkeyup");
searchBox.FireEvent("onchange");
searchBox.FireEvent("onblur"); 

那也没用。我在这里做错了吗?

【问题讨论】:

  • 我无法解决它,不得不切换到 Selenium,现在一切都很好。
  • 你真的应该在 HTML 中使用&lt;button type="button"&gt;Search&lt;/button&gt;&lt;span&gt; 元素从未打算成为用户可以与之交互的东西。如果 &lt;button&gt; 元素应用了不需要的样式,那么使用 &lt;a&gt; 也可以。
  • 您能否在浏览器中发布影响文本字段和“搜索”按钮的 JavaScript?答案可能就在那儿。您可能需要在输入文本后调用textfield.Change(),然后再单击&lt;span&gt;

标签: javascript browser automation watin


【解决方案1】:

就像其他人的参考一样,您的代码的问题在于您试图单击跨度而不是按钮。除非您 100% 确定可点击元素是一个跨度,否则您应该在 Watin 中使用以下代码:

browser.Button("search-button").Click();

这应该可以解决问题

【讨论】:

    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多