6
w selorze Webdriver z pythonem, chcę poczekać na zakończenie żądania Ajax (biblioteka jquery). Używam funkcji wait.until() Selenium. Żądanie Ajax jest uruchamiane po kliknięciu przycisku submitJquery.Selenium wait.u do sprawdzenia wniosku ajax zakończył się błąd wyświetlania
wait.until(self.driver.execute_script("return jQuery.active == 0"))
ale mam następujący błąd:
E
======================================================================
ERROR: test_MahsumAkbasNet_Pass (__main__.TestClass)
----------------------------------------------------------------------
Traceback (most recent call last):
File "D:\xxx\src\unittestpackage\JavaScriptExec.py", line 24, in test_MahsumAkbasNet_Pass
wait.until(self.driver.execute_script("return jQuery.active == 0"))
File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 66, in until
value = method(self._driver)
TypeError: 'bool' object is not callable
----------------------------------------------------------------------
Ran 1 test in 14.449s
FAILED (errors=1)
kompletny kod jest:
# -*- coding: UTF-8 -*-
import unittest
import time
import datetime
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class TestClass(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.set_page_load_timeout(30)
self.driver.maximize_window()
def test_MahsumAkbasNet_Pass(self):
wait = WebDriverWait(self.driver, 30)
self.driver.get("http://www.mahsumakbas.net/selenium")
self.driver.find_element_by_id("submitJquery").click()
wait.until(self.driver.execute_script("return jQuery.active == 0"))
print "Jquery is completed"
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main()
góry dzięki.
jeśli otrzymujesz 'ReferenceError: jQuery nie jest defined' że może być fakt, że jQuery nie jest ładowany podczas uruchamiania tej linii. – Indra