You are using WebUI.verifyElementNotPresent(). Calling verifyElementNotPresent makes your script fragile in case that the target web pages responds slowly. If the response is slow (e.g. 3 second), your call to WebUI.verifyElementNotPresent() would quickly return true. You should use WebUI.verifyElementNotPresent() only when you are 100% sure that the element will be found in the page at the first iteration and you expect it to disappear after a few iteration. I suppose this scenario is not what you have in mind.
Your problem can be restated:
Wait for the element ‘Page_Quick Inbound/input_Bad_quantity’ to be found; If it is found then the script do something … , otherwise the script skip the current iteration and continue with the next iteration.
You can implement it using WebUI.verifyElementPresent(). Your script would be as such:
....def timeout = 1if (WebUI.verifyElementPresent( findTestObject('Page_Quick Inbound/input_Bad_quantity', timeout, FailureHandling.OPTIONAL) )) { WebUI.setText( findTestObject('Page_Quick Inbound/input_Bad_quantity'), findTestData('Ship Plan Data').getValue('Quantity', row)) ...} else { continue}....
Possibly you would prefer shorter timeout, for example 1 sec, to longer timeout, for example 10 secs.