首页 > 解决方案 > 如何使用带有 chromedriver 的 python-binding selenium 刷新绕过缓存?

问题描述

我将 python 绑定硒与 chromedriver 一起使用。我使用 webdriverwait 直到未显示元素的预期条件

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

    def view_journal_entry(self):
        self.driver.refresh()
        self.driver.find_element_by_css_selector('a.small_journal_link.get-ajax-account-transaction').click()
        try:
            WebDriverWait(self.driver, 10).until(
                ec.invisibility_of_element_located((By.CSS_SELECTOR, 'div.blinkdot')))
        finally:
            pass

    def check_journal_entry(self):
        self.view_journal_entry()
        debit = self.driver.find_element_by_css_selector('td.gl_total_debit').get_attribute('innerHTML')
        credit = self.driver.find_element_by_css_selector('td.gl_total_credit').get_attribute('innerHTML')
        index = 0
        while ((debit != credit) or (debit == '0,00') or (credit == '0,00')) and index < 2:
            self.view_journal_entry()
            index += 1
        if (debit == credit) and (debit != '0,00') and (credit != '0,00'):
            print('debit is ' + debit + '\n' + 'credit is ' + credit)
            print('journal entry is balanced \n')
            self.driver.refresh()
        elif (debit == '0,00') or (credit == '0,00'):
            print('debit or credit is 0, please check sidekiq \n')
            self.driver.refresh()
        else:
            print('debit is ' + debit + '\n' + 'credit is ' + credit)
            print('journal entry is not balanced \n')
            self.driver.refresh()

问题是webdriver不会等到超时才显示元素,我唯一需要做的就是将正常刷新更改为刷新绕过缓存,以便在循环函数时不显示元素。

如何使用带有 chromedriver 的 python selenium 刷新绕过缓存?

标签: pythonpython-3.xseleniumselenium-chromedriver

解决方案


推荐阅读