如何解决在定义了“with”语句的类中使用相同的 SUIT 进行多次尝试
我目前正在通过 python 中的 selenium 自动执行 ui 测试,并且一些 webElements 会定期更改,这会导致 StaleElementReferenceExceptions。
对于这些麻烦的元素,我目前的解决方案是使用 try-except-blocks 和一个 for 循环来封装它们。
for _ in range(numberOfTries):
try:
webElement = get_theNeededWebelement()
doSomethingWithWebElement(webElement)
break
except StaleElementReferenceException:
pass
else:
raise Error(specificErrorText)
我希望能够将 numberOfTries 和 specificErrorText 与 try 语句中的块一起定义,并将可重用逻辑转移到一个类中。
像这样使用的东西:
with StalenessExpector(numberOfTries,specificErrorText):
webElement = get_theNeededWebelement()
doSomethingWithWebElement(webElement)
有没有办法做这样的事情? 也许使用递归或适当的“with”语句?
解决方法
我觉得你的想法很好。
但是我会给 numberOfTries
一个默认值,因为我猜你想在大多数情况下使用它具有相同的值,比如 10
而且我认为您必须在 StaleElementReferenceException
的情况下添加一些小的延迟,以使页面在再次池化元素之前稳定
except StaleElementReferenceException:
sleep(0.1)
pass
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。