2017-03-08 5 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') 

를하지만 오류가 저를 반환합니다 :

I (예) 다음을 수행하고

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

(I는 처음으로 파편을 사용하고) 이런 식으로 해결하기 :.

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

감사합니다. 그 색인은 무엇입니까? – MiNdFrEaK

+0

글쎄,'find_by_tag'는 항상리스트를 반환하므로, 인덱스 0은 첫 번째 또는 유일한 것을 반환합니다. 그것이 당신을 도운다면 대답을 upvote 수 있습니까? :) –