jquery - Selenium wait.until 检查 ajax 请求完成是抛出错误

标签 jquery python selenium selenium-webdriver wait


在带有 Python 的 selenium Webdriver 中,我想等待 Ajax 请求完成(jquery 库)。我使用 Selenium 的 wait.until() 函数。 Ajax 请求在点击 submitJquery 按钮后开始。

wait.until(self.driver.execute_script("return jQuery.active == 0"))

但是我得到了以下错误:

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)

完整代码为:

# -*- 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()

提前致谢。

最佳答案

您需要将一个可调用传递给wait.until():

wait.until(lambda driver: driver.execute_script("return jQuery.active == 0"))

关于jquery - Selenium wait.until 检查 ajax 请求完成是抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572313/

相关文章:

java - 如果浏览器定向到错误的 URL,如何进行测试 "fail"

javascript - $(document).ready(function() {...}) 在插件脚本加载之前运行

python - 在 tkinter 脚本中使用 pyperclip 保存到剪贴板时进行编码

python - Django REST 框架 - 多个查找字段?

python - 如何更深入地了解 Watson Discovery Service 中文档摄取失败的原因

java - 我的 webdriver 代码在 FF 上运行良好,但在 IE11 上出现错误

java - 在 Xpath 中使用 "AND"和 "normalize-space"时在不同的浏览器中出现不同的错误

jquery - 如何在 Selenium 测试中设置html元素的样式显示?

javascript - 动态更新传单上的 map Pane 和图例

javascript - 调用 javascript 中嵌入的不同参数的 ruby​​ 方法