我正在尝试单击一个按钮登录,但是即使在单击按钮后,我也会获得超时例外。
我已经验证了代码,并验证了我正在使用正确的定位器。
描述:上限演示 导航到GitHub网站,使用 搜索功能并转到仓库的主页演员: - 演员:网络 细分市场: - 细分:1 行动: - 描述:导航到GitHub主页 动作:org.getopentest.selenium.navigateto args: URL: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"}
只希望最后一个测试柜通过
您不需要任何sendEnter: true
操作的CC_1参数。当您通过sendEnter: true
时,将键发送到文本框元素后,操作将"按" Enter键。因此,基本上,在您显示的测试中,第一个操作将输入用户名,然后按Enter,因此试图在没有密码的情况下登录,这当然会失败。
另一个问题是您错误地使用了ActionsPause
关键字(在此处提供更多信息(。如果您想在测试中引入延迟,可以使用$ delay((API,但是由于内置同步,您很少需要使用最opent的操作,这意味着所有在UI上执行某些工作的测试操作元素知道如何在完成工作之前等待该元素可用。