name変数以外のオブジェクトを制御するために使用getControl
質問
私は私の最後の質問で推奨されているの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()を拡張したい場合があります。 ;)
所属していません StackOverflow