1

前回の質問で推奨されているZopeテストブラウザを使用しています。私が直面している問題は、getControl関数を使用して、パスワード、ユーザー名などのさまざまなオブジェクトを制御できることです。

次のページに移動するためにページを送信しようとしていますが、送信ボタンには「name」変数がなく、「id」変数のみがあります。「送信」は次のように記述されます。

<input type="submit" id="lgn_button" class="button" tabindex="3" accesskey="s" />

その他のオブジェクトは次のように記述されます。

<input type="password" class="button" name="password" id="password" size="24" maxlength="20" accesskey="p" tabindex="2" value=""/></td>

これを変更するためのアクセス権がありません。'password'オブジェクトの制御を取得するために使用しているpythonzopeコードは次のとおりです。

browser.getControl(name='password')

送信ボタンには「名前」がないので、次のように書きました。

browser.getControl(id='lgn_button')

これにより、「id」が無効であるというエラーが出力されます。

TypeError: getControl() got an unexpected keyword argument 'id'

'submit'の他の値の1つを制御する方法はありますか?

助けてくれてありがとう。

4

1 に答える 1

0

何らかの理由で、タグに「name」属性を追加することはできないと思いますが、追加できないのが「name」だけの場合は、「value =Submit」を明示的に設定できます(デフォルトのSubmit)に依存する代わりに、browser.getControl('Submit')を使用します。

それが失敗すると、あなたはの線に沿って何かをすることができます

browser.mech_browser.forms()のフォームの場合:
    form.controlsでの制御用:
        control.id =='lgn_button'の場合:
            リターンコントロール

これを使用してBrowser.getControl()を拡張し、zope.testbrowserに戻すこともできます。;)

于 2010-01-28T19:11:31.953 に答える