Если вы знаете имя пакета, то это работает без использования блока try-catch или итерации через кучу пакетов:
public static boolean isPackageInstalled(Context context, String packageName) {
final PackageManager packageManager = context.getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage(packageName);
if (intent == null) {
return false;
}
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return !list.isEmpty();
}
Если элемент отсутствует, webdriver
выдаст exception
, поэтому для этого следует использовать блок Try..Except. Надеюсь, что эта помощь
try:
if (driver.find_element_by_xpath(("//*[contains(text, 'Hello Automation User')]"))):
print ("Test Passed")
except:
if (driver.find_element_by_class_name('error')):
print ("Test Failed: Username and Password combination mismatch")
else:
print("Test Failed")
, поскольку это элиф-оператор по своей природе, он не будет запускать оператор, если предыдущий, если утверждение истинно: например,
x = True
if x:
print('if')
elif x:
print('elif')
output: 'if'