1

我在使用可点击 div“保存”按钮的表单页面上使用 Openscript。当手动单击按钮时,将执行一个 javascript 事件以保存页面上的更改。当我播放脚本时,脚本单击按钮并被重定向到下一页,但不会保存我在文本框上所做的更改。我猜它在播放时不会运行 ng-click updateUser() 函数。如何让 openscript 单击保存按钮并运行 javascript 函数?

开放脚本代码:

web.button(
        "/web:window[@index='0' or @title=Payment Processor']/web:document[@index='0']/web:form[@name='form' or @index='0']/web:button[@index='1']")
        .click();

这是 div 保存按钮代码的样子:

<div class="row">
   <div class="col-xs-12">
       <button class="btn btn-primary" ng-click="updateUser()">
          <i class="fa fa-asterisk"></i>
           Save
       </button>

   </div>
</div>
4

3 回答 3

0

.click();应该可以,但你也可以试试mouseClick()

使用 OATS 12.4.0.1 并针对 AnjularJS Docs 示例 #64 进行测试,我播放此类似的 ng-click 以增加显示的计数。我下面的示例显示mouseClick()

  • AnjularJS 示例 #64:

    <body ng-app="">
      <button ng-click="count = count + 1" ng-init="count=0">
        Increment
      </button>
      <span>
        count: {{count}}
      </span>
    </body>
    
  • 开放脚本代码:

    web.window(2, "/web:window[@index='0']").navigate(
         "https://docs.angularjs.org/examples/example-example64/index.html");
    {
      think(14.929);
    }       
    web.button(4, "/web:window[@index='0']" 
            + "/web:document[@index='0']/web:button[@index='0']")
        .mouseClick(null, 1, false);
        // .click(); // this should work too.
    
于 2014-10-10T16:14:43.107 回答
0

在 OpenScript 中有一个选项可以直接调用 JavaScript 函数。

String javaScript = "updateUser()";
DOMDocument doc = web.document("/web:window[@index='0' or @title=Payment Processor']/web:document[@index='0']/web:form[@name='form' or @index='0']");
doc.executeJavaScript(javaScript);

您可以使用上面的代码来调用 JavaScript 函数。

于 2018-07-12T11:53:11.140 回答
-1

到目前为止,我从未遇到过表单未保存或任何其他点击未保存的问题..只需尝试以下步骤..

  1. 使用保存选项再记录一次新脚本
  2. 添加适当的思考时间

think(8);或者有时我什think(8);think(8);至像某些地方那样做 openscript 没有记录任何思考时间。

实际上我总是在每一步之后增加思考时间作为每一步 think(8);之后的统一时间,即使有一些思考时间,添加更多,如果没有思考时间添加一些。最大值为think(10);

于 2015-11-05T22:13:05.980 回答