提交在Django StaticLiveServerTestCase中使用Intercooler的表单

时间:2018-07-19 09:37:39

标签: python django selenium

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

  

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

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

当前表单如下:

<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等待,以便将整个页面加载,但问题仍然存在。

任何帮助,将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试使用Javascript单击按钮:

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

答案 1 :(得分:1)

事实证明我在错误的地方等待。提交表单后,我应该一直在等待,以便页面内容得以更新。