场景:我有不同类型的广告。可以单击一个按钮,可以在整个广告上单击其他按钮。 我必须测试广告何时到来,通过点击按钮进行第一次测试,如果不起作用,请点击其他类型。在appium中,在第一个if条件中,如果找不到元素,它将无法通过测试。 如何在声明失败之前测试多个条件。
答案 0 :(得分:1)
有很多方法可以做到这一点。在Python中,我会选择类似的东西:
locators = ['.someClass', '#someID']
for locator in locators:
el = self.driver.find_elements_by_css_selector(locator)
if len(el) == 1:
break
elif len(el) == 0:
el = None
else:
self.fail('multiple elements: %s found: %d' % locator, len(el))
self.assertIsNotNone(el, '> 1 matches found on page: %s' % locator)
el.click()
基本上如果在页面上找不到定位器,那么我们将el设置为None并尝试另一个定位器。 如果找到定位器(在您的情况下,比如说按钮),则找到方法中断。如果定位器找到> 1,然后它失败了。 您必须为此函数定义唯一的定位器才能工作。