说明
目前的进度及后续的课程

(html comment removed: more)
介绍
延续上节的内容,这次来实践一下.主要内容是修改模板,及解决跨站问题.
今天的具体内容如下:
- 更新模板
- 奇怪的失败
- 稍微作弊一下
- 问题解决
更新模板
vi lists/templates/home.html
<h1>Your To-Do list</h1>
<form method="POST">
<input name="item_text" id="id_new_item" placeholder="Enter a to-do item" />
</form>
<table id="id_list_table">
python functional_tests.py
为表单添加POST方法并测试
奇怪的失败
测试失败,报错如下
[...]
Traceback (most recent call last):
File "functional_tests.py", line 40, in
test_can_start_a_list_and_retrieve_it_later
table = self.browser.find_element_by_id('id_list_table')
[...]
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate
element: [id="id_list_table"]
这个比较麻烦,没有明显的调试信息,说找不到的元素,其实也是有的
稍微作弊一下
vi functional_tests.py
inputbox.send_keys(Keys.ENTER)
time.sleep(10)
table = self.browser.find_element_by_id('id_list_table')
给操作的加一个休眠时间,在这个时间窗里,使用浏览器查看网页
问题解决
作弊还是有效的,页面显示大大的403,并且说明有CSRF验证失败,跨域了呢
说明放在后面,先写下修正代码
vi lists/templates/home.html
<form method="POST">
<input name="item_text" id="id_new_item" placeholder="Enter a to-do item" />
{% csrf_token %}
</form>
python functional_tests.py
报错消失
预告
今天的内容其实不完整,可以等下一篇一起看.本来打算一起做出来的,但是因为篇幅原因放弃了.
上次是一小步,这次也是一小步,但是走一步算一步,只要坚持不倒退,总会到达目标的.
