1

我正在尝试单击一个按钮登录,但即使单击按钮后,我也会收到超时异常。

我已经验证了代码并确认我使用了正确的定位器。

描述:CAP Demo 导航到 GitHub 网站,使用搜索功能找到 React 存储库,然后转到存储库的主页演员:- 演员:WEB 段:- 段:1 操作:- 描述:导航到 GitHub 主页操作:org。 getopentest.selenium.NavigateTo 参数:网址: http: //192.168.200.98 :8780/CAFPortal/#/login

      - description: Enter Login id
        action: org.getopentest.selenium.SendKeys
        args:
          locator: {xpath: "//*[@id='login']/app-root/app-caf-login/div/div/div[2]/form/div[1]/input"} 
          text: ksood
          sendEnter: true

      - description: Enter password
        action: org.getopentest.selenium.SendKeys
        args:
          locator: {xpath: "//*[@id='login']/app-root/app-caf-login/div/div/div[2]/form/div[2]/input"}
          text: Acs@2018
          sendEnter: true

      - description: Pause for 60 second
        action: org.getopentest.selenium.ActionsPause
        args:
          durationMs: 60000

      - description: Display a greeting dialog box in the browser
        action: org.getopentest.selenium.ExecuteScript
        args:
        script: 
          var message = "Hello World!";
          alert(message);

      - description: Click on sign in 
        action: org.getopentest.selenium.Click
        args:
          locator: {xpath: "//*[@id='login']/app-root/app-caf-login/div/div/div[2]/form/div[3]/div/div/button"}

只希望最后一个测试用例通过

4

1 回答 1

1

您不需要sendEnter: true任何SendKeys操作的参数。当您通过sendEnter: true时,该操作将在将键发送到文本框元素后“按下”回车键。所以基本上,在你展示的测试中,第一个动作将输入用户名然后按回车,因此尝试不使用密码登录,这当然会失败。

另一个问题是您ActionsPause错误地使用了关键字(更多信息在这里)。如果你想在你的测试中引入延迟,你可以使用$delay() API,但是你很少需要用 OpenTest 来做这件事,因为同步是内置的,这意味着所有的测试动作都会在 UI 上执行一些工作element 知道如何在工作之前等待该元素可用。

于 2019-05-28T12:34:57.993 回答