当前位置: 首页 > 面试题库 >

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

叶卓君
2023-03-14
问题内容

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

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"))


 类似资料:
  • 本文向大家介绍php检查是否是ajax请求的方法,包括了php检查是否是ajax请求的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php检查是否是ajax请求的方法。分享给大家供大家参考。具体如下: 通过这段代码可以判断用户的请求是否来自AJAX XMLHttpRequest,以区别普通post,get和ajax 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 有没有一种方法可以检查Python中的请求是否为AJAX? 相当于PHP的? 问题答案: 如果AJAX框架在其请求中设置了X-Requested-With标头,则您将能够使用该标头来检测AJAX调用。这取决于客户端框架。 掌握HTTP标头取决于您选择的Python框架。在Django中,对象具有可以直接使用的方法。

  • 问题内容: 我想检查服务器端是否对我的php页面的请求是ajax请求。 我看到了两种方法可以做到这一点: 第一种方法:在请求中发送一个参数,该参数告诉页面这是AJAX请求(= ) mypage.php: 第二种方式:将标头设置为: 客户端js: mypage.php: 事实是,这两种方法很容易被黑,因此检查我是否收到这样的AJAX请求并不安全。 如何检查我是否收到AJAX请求? 问题答案: 没有确

  • 问题内容: 我一直在通过执行以下操作来确保我的AJAX请求成功: 检查状态变量是执行此操作的最佳方法,还是有一种更好的方法来确保请求实际通过?我正在考虑“成功”请求是一个成功命中我要发布到的页面的请求,而不会超时(例如,服务器已关闭,并且在出现故障之前立即进行了AJAX请求)或返回任何404或500错误。 问题答案: 通过这样调用,您将仅自动传递一个函数。 如果请求中出现问题,则甚至不会执行此方法

  • 问题内容: 检测下载是否完成的最佳方法是什么,因为此后我想更新数据库。 我尝试了PHP手册中的一些代码,但对我来说并没有多大作用: 问题答案: 但这并不能真正告诉您用户是否已完成下载。当 您 完成向用户发送字节后,它将告诉您,但它并没有说明用户实际收到了多少字节。 实际上,PHP(服务器端而非客户端语言)无法真正检测文件下载何时完成。最好的办法是在下载开始时将下载记录在数据库中。如果您绝对,完全和

  • 问题内容: 在我的动作中,我只希望响应从AJAX请求中调用的处理。我该如何检查? 我想做这样的事情: 问题答案: 您可以检查是否为AJAX请求。这是一篇很好的文章。 这是一个例子: