我想使用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
谢谢!
答案 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上进行了测试。