我的 WebDriverWait 返回 "dict" 而不是所需的元素

My WebDriverWait is returning a "dict" instead of the required element

我想使用带有 Gauge 的 Selenium 从网页中获取数据。我写了下面的代码,使用 wait_for_element:

from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from step_impl.mixins.exception import MixinException

class MixinSelector(MixinException):

    def __init__(self, driver=None):
        super(MixinSelector, self).__init__(driver)
        self.wait_for_element_time = 60

    def wait_for_elem(self, by, locator_string):
        try:
            element = WebDriverWait(self.driver,self.wait_for_element_time)
                      .until(EC.presence_of_element_located((by, 
                       locator_string)))
            print(element)
            print(type(element))  
            return element
        except TimeoutException:
            self.fail_test('failed')
        except:
            raise

但是,这会导致 dict 实例,如调试 prints:

所示
{'ELEMENT': '0.8884832448581164-1'}
<class 'dict'>

我这样调用函数:

self.wait_for_elem(By.CSS_SELECTOR, '#baseWebLayoutContainerID')

这是个问题,因为我需要将结果作为一个 Web 元素,然后才能在其他几个函数中使用。我怎样才能得到那个结果?

不要期望 Web 元素从 WebDriverWait 返回,而是在 WebDriverWait 之后添加另一行以获取 Web 元素,请参见下面的代码

WebDriverWait(driver, 10).until(EC.presence_of_element_located((by, locator_string)))
element = driver.find_element(by, locator_string) 
return element

正如您在下图中看到的那样,它对我来说效果很好