Le sélénium Python attendre pour que le texte puisse être présent dans l'élément d'erreur montre prend 3 arguments 2

Je suis en utilisant WebdriverWait attendre un peu de texte pour être présent dans un élément sur une page web. Je suis à l'aide de Sélénium avec Python. Ma syntaxe n'est pas correcte.
J'obtiens l'erreur:
TypeError: init() prend exactement 3 arguments (2):

Trace de l'erreur:

Traceback (most recent call last):
  File "E:\test_runners 2 edit project\selenium_regression_test_5_1_1\Regression_TestCase\RegressionProjectEdit_TestCase.py", line 2714, in test_000057_run_clean_and_match_process
    process_lists_page.wait_for_run_process_to_finish()
  File "E:\test_runners 2 edit project\selenium_regression_test_5_1_1\Pages\operations.py", line 334, in wait_for_run_process_to_finish
    EC.text_to_be_present_in_element("No data to display"))
TypeError: __init__() takes exactly 3 arguments (2 given)

Mon bout de code est:

def wait_for_run_process_to_finish(self): # When the process is running use WebdriverWait to check until the process has finished.  No data to display is shown when process has completed.
    try:
        WebDriverWait(self.driver, 900).until(
            EC.text_to_be_present_in_element("No data to display"))
        no_data_to_display_element = self.get_element(By.ID, 'operations_monitoring_tab_current_ct_fields_no_data')
        print "no_data_to_display_element ="
        print no_data_to_display_element.text
        if no_data_to_display_element.text == "No data to display":
            return True
    except NoSuchElementException, e:
        print "Element not found "
        print e
        self.save_screenshot("wait_for_run_process_to_finish")

Le scénario est l'utilisateur clique sur le bouton exécuter et il commence un processus.
Lorsque le processus se termine le texte "Pas de données à afficher" sera affiché.
Je voudrais attendre jusqu'à ce que ce texte s'affiche alors je sais que le processus est terminé.
Avant j'utilisais de temps.sommeil(900), ce qui n'est pas bon car il explicitement attend les 15 minutes. Le processus complet en 8 minutes, parfois 12 minutes.

J'ai aussi essayé:

WebDriverWait(self.driver, 900).until(
            EC.text_to_be_present_in_element(By.ID, 'operations_monitoring_tab_current_ct_fields_no_data', "No data to display"))

L'erreur affiche: TypeError: init() prend exactement 3 arguments (4)

Quelle est la bonne syntaxe à attendre pour que le texte soit présent?
Merci, Riaz

OriginalL'auteur Riaz Ladhani | 2016-10-25