Python 2.7 Selenium Firefox web驱动程序在启动多个web驱动程序实例时冻结

Python 2.7 Selenium Firefox web驱动程序在启动多个web驱动程序实例时冻结,python-2.7,firefox,selenium,selenium-webdriver,Python 2.7,Firefox,Selenium,Selenium Webdriver,我正在开发一个应用程序,它使用selenium firefox web驱动程序通过芹菜异步任务获取页面截图。我所观察到的是,如果在同时启动多个web驱动程序实例时加载了元素,则在轮询时它会挂起 有没有一种方法可以在超时后强制关闭web驱动程序 或者我还有别的办法来处理这个问题吗?有什么建议吗 相关代码: def open_url_in_virtual_display(self, url, browser, selector=None): browser.get(url) def

我正在开发一个应用程序,它使用selenium firefox web驱动程序通过芹菜异步任务获取页面截图。我所观察到的是,如果在同时启动多个web驱动程序实例时加载了元素,则在轮询时它会挂起

有没有一种方法可以在超时后强制关闭web驱动程序

或者我还有别的办法来处理这个问题吗?有什么建议吗

相关代码:

def open_url_in_virtual_display(self, url, browser, selector=None):
    browser.get(url)

    def find_element(browser):
        log.info("waiting for selector to be loaded : {0}".format(selector))
        found = False
        is_stale = True
        while is_stale:
            try:
                ele_found = browser.find_element_by_css_selector(selector).is_displayed()
                #it hangs over here.
                log.info(" element found flag : {0}".format(ele_found))
                if ele_found:
                    found = True
            except StaleElementReferenceException:
                is_stale = True
            else:
                is_stale = False
        return found

    def wait_until_function_returns_true(browser, fn, timeout):
        ret_val = False
        try:
            ret_val = ui.WebDriverWait(browser, timeout).until(fn)
        except TimeoutException as e:
            return ret_val

        else:
            return ret_val

    wait_until_function_returns_true(browser, find_element, 10)
    self.browser.implicitly_wait(3)

每次收到截图请求时,都会启动此方法。

您能分享实际代码并指出挂起的位置吗?谢谢这个问题提出了一个非常棘手的问题,但并没有提供足够的信息发布一个知情的答案。例如,OP有一条评论说“它挂在这里”。自然的解释是下一行挂起。如果
log.info
挂起,这不是问题。然而,可能是元素已经过时了,这对于每次迭代都是如此(是的,这是绝对可能的;例如,所寻找的元素是某种实时时钟)。因此,代码实际上不是“挂起”,而是无限旋转。除了假设之外,没有足够的信息可以做更多的事情。@Louis我不完全理解为什么寻找的元素可能已经过时了。但是,让我们考虑一下,如果它已经过时了,我该如何检测。@ MUITIt,如果浏览器端上有JavaScript代码正在处理DOM,那么在您在脚本中使用该元素时,元素可能会过时。例如,在一些测试表刷新的代码中,我遇到了这种情况。