Check if argument is iterable. E.g. type **list** also works. (#7037)

Co-authored-by: David Burns <david.burns@theautomatedtester.co.uk>
Cr-Mirrored-From: https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium
Cr-Mirrored-Commit: 32fa113844fb323e16472de14ffdee9f8f44d468
diff --git a/selenium/webdriver/support/expected_conditions.py b/selenium/webdriver/support/expected_conditions.py
index c7bbff8..afdb9f7 100644
--- a/selenium/webdriver/support/expected_conditions.py
+++ b/selenium/webdriver/support/expected_conditions.py
@@ -245,7 +245,7 @@
 
     def __call__(self, driver):
         try:
-            if isinstance(self.frame_locator, tuple):
+            if hasattr(self.frame_locator, '__iter__'):
                 driver.switch_to.frame(_find_element(driver,
                                                      self.frame_locator))
             else: