2

我想使用 verifyElementPresent 跳过我的 Selenium 测试脚本中的一段代码。我在旧的 Firefox 扩展中成功地使用了类似的东西,但我不知道如何让它在 Chrome Kantu 版本中工作。

我已经尝试过 ${!statusOK}==true 和 ${!lastCommandOK}==true 并且我发现它们都很挑剔。我无法获得与任何一个一致的测试用例,我不知道为什么。我在 FireFox 浏览器扩展中使用了 storeElementPresent 并且它始终如一地工作,但是该命令在 Kantu 中不可用。

下面的链接概述了我尝试使用 verifyElementPresent 的确切场景,但它对我不起作用。有谁知道另一种方法来做到这一点?

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

谢谢!

4

2 回答 2

1

我想做与描述的问题相同的事情。我找到了一个解决方案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 上测试。

于 2020-10-19T21:35:49.973 回答
0

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

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

!statusOK (read/write) - 包含宏执行的状态。一旦发生错误,!statusOK 设置为 FALSE。将 !ErrorIgnore 设置为 true 使用,以便在出现错误后继续执行宏。只有这样 !statusOK 才会有用。否则宏无论如何都会在错误处停止。!statusOK 类似于 !LastCommandOK 但它不会被成功的命令重置。一旦 !statusOK 因错误设置为“false”,即使下一个命令成功,它仍将保持为“false”。但是你可以使用 store | 真实 | !StatusOK 手动重置它。

于 2019-04-12T18:52:39.047 回答