如何在verifyElementPresent中使用条件语句

时间:2019-04-12 18:04:10

标签: selenium kantu

我想使用verifyElementPresent跳过我的Selenium测试脚本中的一大堆代码。我在较旧的Firefox扩展程序中成功使用了类似的方法,但是我不知道如何在Chrome Kantu版本中使其工作。

我已经尝试过$ {!statusOK} == true和$ {!lastCommandOK} == true,但我发现它们都有些挑剔。我无法获得一个一致的测试用例,而且我不确定为什么。我在FireFox浏览器扩展程序中使用了storeElementPresent,它一直工作,但是该命令在Kantu中不可用。

下面的链接概述了我正在尝试使用verifyElementPresent的EXACT方案,但是它不适用于我。有人知道这样做的另一种方法吗?

https://a9t9.com/kantu/docs/selenium-ide/assertelementpresent-verifyelementpresent

{
   "Command": "verifyElementPresent",
   "Target": "//table[@id='phHeader']/tbody/tr/td[3]/div/div/div/span[2]",
   "Value": ""
},
{
   "Command": "gotoIf",
   "Target": "${!statusOK} == true",
   "Value": "logOut"
},
{
   "Command": "gotoIf",
   "Target": "${!statusOK} == false",
   "Value": "logIn"
},

我希望当该元素存在时,它将转到代码的“ logOut”标签。

请查看我的Kantu播放器的图像,以确切了解其发生故障的位置:https://imgur.com/ckzp1Aa

谢谢!

2 个答案:

答案 0 :(得分:1)

我能找到的唯一解决方案是在每个校验语句之前将!statusOK手动设置为true。好像是因为先前的失败而陷入困境。这可以解释为什么它在每次运行时表现都如此不同。我希望我的奋斗和最终的解释对其他人有所帮助!我仍在寻找有关如何使这些脚本更好地工作的提示,因此,如果您有任何好的技巧,请告诉我!

https://a9t9.com/kantu/docs#!statusOK

!statusOK(读/写)-包含宏执行的状态。一旦发生错误,statusOK设置为FALSE。在!ErrorIgnore设置为true的情况下使用,因此在错误发生后继续执行宏。只有这样!statusOK才有用。否则,宏将始终在错误处停止。 !statusOK与!LastCommandOK类似,但是不会通过成功的命令来重置。一旦错误将!statusOK设置为“ false”,即使下一条命令成功执行,它也保持为“ false”。但您可以使用商店|真实| !StatusOK以手动重置它。

答案 1 :(得分:0)

我想做与上述问题相同的事情。我找到了Selenium IDE的解决方案,但是没有使用verify element present命令。由于没有其他解决此问题的方法,因此我将发布一种发现的方法来帮助您。

您应该使用以下命令代替verify element present命令: 命令:store xpath count 目标:<locator of object to find>,例如:xpath=\\a[id='logout'] 值:number

因此检查元素是否存在的整个代码如下:

Command: store xpath count
Target: <locator of object to find>
Value: number
Command: if, Target: ${number} == 1
Command: click, Target: <locator> 

... Any commands you want to execute

Command: end
Rest of code outside of if

<locator>可以是xpath,css选择器。 示例:xpath=\\a[id='logout'] 在Firefox Selenium IDE的最新版本3.17.0上进行了测试。