我正在尝试使用Appium和Python自动化移动测试。我需要检查是否显示了一个元素,如果元素没有显示,我需要执行一些操作并执行一些其他操作。我的剧本如下图所示
wifi = self.driver.find_element_by_xpath('//*[contains(@class,"android.widget.TextView") and contains(@text, "WLAN")]')
if wifi.is_displayed():
print 'Wifi is switched off'
mobiledata = self.driver.find_element_by_xpath('//android.widget.TextView[contains(@text, "Mobile data")]')
mobiledata.click()
print 'SUCCESS! Switch on Mobile data'
else:
print 'Wifi is switched on'
wifi_off = self.driver.find_element_by_xpath('//*[contains(@class,"android.view.ImageView") and contains(@index, "0")]')
wifi_off.click()
print 'SUCCESS! Switch off Wifi'
mobiledata = self.driver.find_element_by_xpath('//android.widget.TextView[contains(@text, "Mobile data")]')
mobiledata.click()
print 'SUCCESS! Switch on Mobile data'
现在我面临的问题是,当if条件为true时,脚本运行得很好,但是当if条件为false时,会出现找不到元素“wifi”的错误(这是真的,但这就是为什么我需要转到else部分)。在
我怎样才能解决这个问题。提前谢谢。在
元素是否存在与是否显示元素之间存在差异-如果找不到元素,则由
driver.find_element_by_xxx
引发异常如果您想检查某个元素是否存在,那么最好执行
driver.find_elements_by_xxx
,因为如果没有与搜索条件匹配的元素,它将返回一个空列表,而不是抛出异常。在因此,您可以将代码更改为类似于:
相关问题 更多 >
编程相关推荐