gpt4 book ai didi

jquery - 有没有办法使用 Python/Selenium Webdriver 确认网页上是否存在 jQuery?

转载 作者:行者123 更新时间:2023-11-28 22:25:09 25 4
gpt4 key购买 nike

我们有一个自主开发的自动化测试框架,它使用 Selenium Webdriver(用 Python 编写)。它使用 map 将对象的名称链接到它在网页中的标识符。不幸的是,我们似乎遇到了一个问题,即我们等待 AJAX 调用完成的时间不够长(我们正在解决一些性能问题)。

现在感谢 stackoverflow 和其他互联网资源,我找到了以下代码段:

在决定与对象交互之前插入到框架中

    try:
WebDriverWait(driver, 5).until(ajax_complete, "Ajax check waited 5 seconds")
except TimeoutException:
logger1.info("Warning: waited 5 seconds)

然后这是 ajax_complete 的代码:

def ajax_complete(driver):
try:
return 0 == driver.execute_script("return jQuery.active")
except WebDriverException:
pass

问题是某些页面(登录屏幕)没有 jQuery,所以我总是陷入 TimeoutException。我知道目前最上面的代码段将在 5 秒后超时并显示一条日志消息,但由于我们的性能问题,我需要将其更改为 60 秒。这意味着登录页面在等待 Ajax 检查超时时将有 3 分钟的等待时间(输入用户名 1 分钟,输入密码 1 分钟,点击登录按钮 1 分钟),因为 jQuery 不存在页面。

在执行 WebDriverWait 检查之前,我是否可以寻找一些东西来确认网页上确实存在 jQuery?做一些脚本元素检查就足够了吗?

喜欢:

if driver.find_element_by_tagname("<script>")

如果返回 True,则页面上有一个脚本 - 不一定是 jQuery,但它会更接近,也许可以使用更具体的 find_element_by。困难的部分是我正在尝试检查否定(jQuery 不存在)。

最佳答案

您可以检查 jQuery“global”是否使用脚本定义:

is_jquery_present = driver.execute_script("return (typeof jQuery != 'undefined');")

虽然这需要测试,因为页面加载 jQuery 本身也需要时间。

寻找特定的 script 可能适用于某些页面,但没有保证“导入”jquery 库的方法,因为,例如,至少,JS 源可能被打包和缩小.

关于jquery - 有没有办法使用 Python/Selenium Webdriver 确认网页上是否存在 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45764560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com