我的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和TextBox2的输入框,并使用用户名和密码填充它们。
我正在执行以下操作(例如):
browser.fill('TextBox1', 'John')
,但它带着错误返回我:
splinter.exceptions.ElementDoesNotExist: no elements could be found with name "TextBox1"
有人可以为此提供帮助吗?(我是第一次使用分裂)
正如您在评论中提到的那样,问题源于包装盒的框架。这样绕过它:
browser.visit(browser.find_by_tag('frame')[0]['src'])
browser.fill('TextBox1', 'John')