refactoror / SelBlocks

SelBlocks extension for Selenium IDE
10 stars 7 forks source link

Goto and While not working in Rollups #33

Closed AnswerWas42 closed 7 years ago

AnswerWas42 commented 7 years ago

Hi,

 I'm new to Selenium-IDE and not sure how/why certain statements

(goto, endWhile) that work fine in test cases (Nice work on this plugin - thank you!) are causing errors if migrated into a Rollup. I am using the SelBlocks plugin for goto and while logic in my test cases. When I try to move the logic into a rollup, it will fail. For goto, the error is "label cannot be found" and for while loops the endWhile statement causes error "[error] Unexpected Exception: TypeError: blkDefHere(...) is undefined. "

 I had same issues when I tried sideflow.js as a user extenstion

where goto and endWhile did not work in Rollup, so obviously there's something about rollups that is very different from just executing code inline in the test script.

Here is what I am trying to execute from a rollup - simplified to be as easy as it can get:

Goto logic in rollup: commands.push({ command: 'goto' , target: 'NextLine' , value: '' }); commands.push({ command: 'label' , target: 'NextLine' , value: '' });

output: [info] Executing: |goto | NextLine | | [error] [selblocks] Error @32: [rollup|VerifyFlightPrice] Target label 'NextLine' is not found. [warn] [selblocks] Stack Trace [error] Unexpected Exception: Error: @32: [rollup|VerifyFlightPrice] Target label 'NextLine' is not found.. [info] Rollup execution complete: bombed!

While logic in rollup: commands.push({ command: 'while' , target: '0 == 0' , value: '' }); commands.push({ command: 'endWhile' , target: '' , value: '' });

output: [info] Executing: |while | 0 == 0 | | [info] Executing: |endWhile | | | [error] Unexpected Exception: TypeError: blkDefHere(...) is undefined. [info] Rollup execution complete: bombed!

Any advice/guidance is welcome, esp. if this is an easily correctable ID10T error. I am using Selemium IDE 2.9.1 with SelBlocks 2.1.1 and Firefox 50.0.2

refactoror commented 7 years ago

Without even looking at their code, Rollups & sideflow.js may be incompatible with Selblocks. Any extension that alters command flow needs to override nextCommand. Selblocks does so without interfering with other extensions that might do so. But other extensions I've seen simply overwrite nextCommand. Bad manners.

Unfortunately, extensions tend to be a wild wild west...

AnswerWas42 commented 7 years ago

OK that makes a lot of sense. I'm actually getting further using the function capability of SelBlocks vs. rollups. So as always, what you figure should work one way doesn't work that way at all and ya gotta just test it and hope it works and pivot when you find out the awful truth. Thanks for the help!!!