1

对于使用 html 表单通过 pharo 登录,有一个 Znclient 方法,它是 formAt:add: 后跟一个帖子。所以我想知道如何填写 html 表单的 textArea 并进行发布。有没有这种行动的方法?

<div><textarea id="technique" name="technique" class="technique">jumping</textarea></div><label>Résultats :</label>
<div><textarea id="resultat" name="resultat" class="resultat">Higher score</textarea></div><label>Conclusion :</label>
<div><textarea id="conclusion" name="conclusion" class="conclusion">Best jumper of the school</textarea></div>

4

1 回答 1

3

在系统浏览器中查看ZnClient类,您可以看到以下方法的注释:

formAt:add:- “将键等于值添加到当前请求的 application/x-www-form-urlencoded 实体。这是用于多值表单字段。”

formAt:put:- “设置键等于当前请求的 application/x-www-form-urlencoded 实体中的值。”

formAdd:- "将 key->value 关联添加到当前请求的 application/x-www-form-urlencoded 实体。"

formAddAll:- "将 keyedCollection 的所有 key->value 关联添加到当前请求的 application/x-www-form-urlencoded 实体中。"

formAt:add:我们之前的任何问答中都没有使用过这个,我们应该在这里避免它。使用最后 3 种方法之一:

| client |
client := ZnClient new url: 'http://server/some-script.cgi'.

然后...

client formAt: 'technique'  put: 'foo'; 
       formAt: 'resultat'   put: 'bar'; 
       formAt: 'conclusion' put: 'baz'; 
       post.

或者...

client formAdd: 'technique'  -> 'foo'; 
       formAdd: 'resultat'   -> 'bar'; 
       formAdd: 'conclusion' -> 'baz'; 
       post.

或这个...

client formAddAll: {
    'technique'  -> 'foo'. 
    'resultat'   -> 'bar'. 
    'conclusion' -> 'baz'.
} asDictionary; post.
于 2017-12-08T14:40:27.913 回答