2017-03-08 15 views
0

は、私は次のようなHTML構造を持っている:テーブル内の入力ボックスを埋めるためにsplinterを使う方法は?

<table id="Table1" style="Z-INDEX: 101; LEFT: 52px; WIDTH: 407px; POSITION: absolute; TOP: 53px" width="407" cellspacing="1" cellpadding="1" border="0"> 
       <tbody><tr> 
        <td style="WIDTH: 102px"></td> 
        <td></td> 
        <td></td> 
       </tr> 
       <tr> 
        <td style="WIDTH: 102px">Email</td> 
        <td> 
         <input name="TextBox1" id="TextBox1" style="width:153px;" type="text"></td> 
        <td></td> 
       </tr> 
       <tr> 
        <td style="WIDTH: 102px">Password</td> 
        <td> 
         <input name="TextBox2" id="TextBox2" style="width:153px;" type="password"></td> 
        <td> 
         <input name="Button1" value="Login" id="Button1" style="width:68px;" type="submit"></td> 
       </tr> 
       <tr> 
        <td style="WIDTH: 102px"></td> 
        <td> </td> 
        <td></td> 
       </tr> 
       <tr> 
        <td style="WIDTH: 102px; height: 20px;"><a href="signinup.aspx">Sign up</a></td> 
        <td style="height: 20px"> 
         <a href="changepassword.aspx">Change Password</a></td> 
        <td style="height: 20px"><a href="RetrievePassword.aspx">Retrieve Password</a></td> 
       </tr> 
       <tr> 
        <td style="WIDTH: 102px"></td> 
        <td> </td> 
        <td></td> 
       </tr> 
      </tbody> 
     </table> 

私はIDをTextBox1とTextBox2をを有する入力ボックスにアクセスし、ユーザー名とパスワードでそれらを埋めるしたいと思います。

私は(例えば)以下のやっている:

browser.fill('TextBox1', 'John') 

しかし、それはエラーで私を返します。

splinter.exceptions.ElementDoesNotExist: no elements could be found with name "TextBox1" 

誰もこれに助けることができますか?あなたのコメントで言及したよう、問題は箱がに包まれていることをフレームから茎

+0

それは働きます!私たちが助けることができる完全な例を追加してください –

+0

@PiotrDawidiuk私は完全な例を追加しました、私に何が欠けているか教えてください? – MiNdFrEaK

+0

私はこのケースを作り直しました。これを試してみてください:http://pastebin.com/WDUjgzvL(/home/x/example.htmlはあなたが投稿したHTMLです)。フォームに記入されます。だから私はあなたがどこか別のエラーを抱えていると思うので、もっと詳細が必要です。 –

答えて

1

(私が初めて破片を使用しています)このようにそれを回避:。

browser.visit(browser.find_by_tag('frame')[0]['src']) 
browser.fill('TextBox1', 'John') 
+0

ありがとうございます、そのインデックスは何ですか? – MiNdFrEaK

+0

まあ、 'find_by_tag'は常にリストを返すので、インデックス0を最初に返すか、または1つだけ返します。それがあなたを助けたら、答えをアップアップすることができますか? :) –

関連する問題