質問

私は私の最後の質問で推奨されているのZope testbrowserを使用しています。私が直面していないという問題は、私のようなさまざまなオブジェクトを制御するために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>

私はこれを変更するにはアクセスできません。私は「パスワード」オブジェクトの制御を獲得するために使用していますPythonのZopeのコードがあります:

browser.getControl(name='password')

私は書かれているので、ボタンは「名前」を持っていない提出します:

browser.getControl(id='lgn_button')

エラーアウトこの版画「ID」は無効であること。

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

「提出」内の他の値のいずれかのコントロールを得るためにどのような方法があります。

任意の助けてくれてありがとう。

役に立ちましたか?

解決

私は=一つの理由または別のために、あなたのタグに「名前」属性を追加することはできませんが、それはあなたが追加することができないということだけで「名前」だ場合、あなたは明示的に」の値を設定することができ、と仮定します送信」(代わりに提出しているデフォルトの1、に依存する)、その後browser.getControlを使用します( 『』送信)

は、

の線に沿って何かを行うことができ、それに失敗
for form in browser.mech_browser.forms():
    for control in form.controls:
        if control.id == 'lgn_button':
            return control

あなたも、そのバックzope.testbrowserにも貢献してBrowser.getControl()を拡張したい場合があります。 ;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top