2017-03-08 56 views
0

我有一個HTML結構如下:如何使用分裂填充表格內的輸入框?

<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的1和TextBox輸入框並填滿他們的用戶名和密碼。

我做以下(舉例):

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返回第一個或唯一一個。如果它能幫助你,你能提高答案嗎? :) –

相關問題