'How to wait for translated text to appear in DeepL.com

After entering original text in DeepL, it takes 1-2 sec for translated text to appear.

I'm unable to get translated text with TimeoutException.

I've tried to Synchronize using:

from selenium.webdriver.support import expected_conditions as EC

# ...
# ...
# ...

WebDriverWait(driver, 10).until_not(EC.text_to_be_present_in_element((By.XPATH, "//div[@id='target-dummydiv']"), "\r\n"))
translatedText = driver.find_element(By.XPATH, "//div[@id='target-dummydiv']").text


Checking for non-empty translated text:

WebDriverWait(driver, 10).until(self.IsTranslatedTextNotEmpty)
translatedText = driver.find_element(By.XPATH, "//div[@id='target-dummydiv']").text

def IsTranslatedTextNotEmpty(self, driver: WebDriver):
    translatedText = driver.find_element(By.XPATH, "//div[@id='target-dummydiv']").text
    return len(translatedText) > 0

doesn't work.



Note: Synchronization using time.sleep(5) works.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source