diff --git a/lib/src/async/web_element.dart b/lib/src/async/web_element.dart
index 2e2b5eb..6f924d6 100644
--- a/lib/src/async/web_element.dart
+++ b/lib/src/async/web_element.dart
@@ -151,7 +151,7 @@
       _handler.element.parseCssPropertyResponse));
 
   Future<bool> equals(WebElement other) async =>
-      other is WebElement && other.driver == driver && other.id == id;
+      other.driver == driver && other.id == id;
 
   @override
   int get hashCode => driver.hashCode * 3 + id.hashCode;
@@ -169,12 +169,19 @@
       } else {
         out.write('.findElements(');
       }
-      out..write(locator)..write(')');
+      out
+        ..write(locator)
+        ..write(')');
     } else {
-      out..write('.')..write(locator);
+      out
+        ..write('.')
+        ..write(locator);
     }
     if (index != null) {
-      out..write('[')..write(index)..write(']');
+      out
+        ..write('[')
+        ..write(index)
+        ..write(']');
     }
     return out.toString();
   }
diff --git a/lib/src/handler/json_wire/utils.dart b/lib/src/handler/json_wire/utils.dart
index 8d4cd56..9d9caa1 100644
--- a/lib/src/handler/json_wire/utils.dart
+++ b/lib/src/handler/json_wire/utils.dart
@@ -23,9 +23,7 @@
 
   if (response.statusCode! < 200 ||
       response.statusCode! > 299 ||
-      (responseBody is Map &&
-          responseBody['status'] != null &&
-          responseBody['status'] != 0)) {
+      (responseBody['status'] != null && responseBody['status'] != 0)) {
     final status = responseBody['status'] as int?;
     final message = responseBody['value']['message'] as String?;
 
@@ -85,7 +83,7 @@
     }
   }
 
-  if (valueOnly && responseBody is Map) {
+  if (valueOnly) {
     return responseBody['value'];
   }
 
diff --git a/lib/src/sync/web_element.dart b/lib/src/sync/web_element.dart
index 122b91d..198b3bc 100644
--- a/lib/src/sync/web_element.dart
+++ b/lib/src/sync/web_element.dart
@@ -20,7 +20,6 @@
 import '../common/web_element.dart' as common;
 import '../common/webdriver_handler.dart';
 import 'common.dart';
-
 // ignore: uri_does_not_exist
 import 'common_stub.dart'
 // ignore: uri_does_not_exist
@@ -213,8 +212,7 @@
       _handler.element.parseCssPropertyResponse));
 
   /// Are these two elements the same underlying element in the DOM.
-  bool equals(WebElement other) =>
-      other is WebElement && other.driver == driver && other.id == id;
+  bool equals(WebElement other) => other.driver == driver && other.id == id;
 
   @override
   int get hashCode => driver.hashCode * 3 + id.hashCode;
@@ -232,12 +230,19 @@
       } else {
         out.write('.findElements(');
       }
-      out..write(locator)..write(')');
+      out
+        ..write(locator)
+        ..write(')');
     } else {
-      out..write('.')..write(locator);
+      out
+        ..write('.')
+        ..write(locator);
     }
     if (index != null) {
-      out..write('[')..write(index)..write(']');
+      out
+        ..write('[')
+        ..write(index)
+        ..write(']');
     }
     return out.toString();
   }
