我试图单击一个按钮登录,但是即使单击按钮后,我也收到超时异常。
我已经验证了代码并验证我正在使用正确的定位器。
说明: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"}
只希望最后一个测试用例通过
答案 0 :(得分:0)
sendEnter: true
操作中的任何一个都不需要SendKeys
参数。当您传递sendEnter: true
时,在将键发送到textbox元素后,该操作将“按下” Enter键。因此,基本上,在您显示的测试中,第一个操作将输入用户名,然后按Enter键,从而尝试在没有密码的情况下登录,这当然会失败。
另一个问题是您错误地使用了ActionsPause
关键字(更多信息here)。如果您想在测试中引入延迟,可以使用$delay() API,但由于同步是内置的,因此您很少需要使用OpenTest进行此操作,这意味着在测试平台上执行某些工作的所有测试操作UI元素知道在完成工作之前如何等待该元素可用。