首页 > 解决方案 > 在 Django StaticLiveServerTestCase 中提交使用 Intercooler 的表单

问题描述

我正在尝试为提交表单编写一个 selenium 测试,该表单在提交时使用intercooler.js。我遇到的主要问题是,当我导航到页面时,表单有class="disabled",这不是预期的行为,我无法提交表单。intercooler文档中的相关部分说:

默认情况下,中冷器会将禁用类应用于触发中冷器请求的元素。这可以用来给用户一个视觉提示,他们不应该点击或以其他方式再次触发请求,并且是 Bootstrap 友好的。

但是,在我看来,在我实际提交表单之前已将禁用的类添加到表单元素中,据我所知,它应该只在请求进行中后添加。

目前的表格如下所示:

<form ic-post-to="/dashboard/calculate/2/exports/" ic-select-from-response="#content" ic-target="#content" method="post" ic-src="/dashboard/calculate/2/exports/" ic-verb="POST" ic-trigger-on="default" ic-deps="ignore" class="disabled">
    <input type="hidden" name="csrfmiddlewaretoken" value="...">
    <input type="submit" name="new" value="New" class="btn btn-primary float-right ml-1" id="submit-id-new">
</form>

我已尝试添加explicitimplicit等待以加载整个页面,但问题仍然存在。

对此的任何帮助将不胜感激。

标签: pythondjangoselenium

解决方案


尝试使用Javascript点击按钮:

submit = driver.find_element_by_id("submit-id-new")
driver.execute_script("arguments[0].click();", submit)

推荐阅读