即使已单击元素,超时异常

时间:2019-05-24 14:47:16

标签: opentest

我试图单击一个按钮登录,但是即使单击按钮后,我也收到超时异常。

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

说明:CAP演示   导航至GitHub网站,使用   搜索功能并转到存储库的主页 演员:   -演员:WEB     细分:       -细分:1         动作:           -说明:导航到GitHub主页             行动:org.getopentest.selenium.NavigateTo             args:               网址: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"}

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

1 个答案:

答案 0 :(得分:0)

sendEnter: true操作中的任何一个都不需要SendKeys参数。当您传递sendEnter: true时,在将键发送到textbox元素后,该操作将“按下” Enter键。因此,基本上,在您显示的测试中,第一个操作将输入用户名,然后按Enter键,从而尝试在没有密码的情况下登录,这当然会失败。

另一个问题是您错误地使用了ActionsPause关键字(更多信息here)。如果您想在测试中引入延迟,可以使用$delay() API,但由于同步是内置的,因此您很少需要使用OpenTest进行此操作,这意味着在测试平台上执行某些工作的所有测试操作UI元素知道在完成工作之前如何等待该元素可用。