我正在尝试使用selenium在我的网站上输入我的用户名和密码,但它会进入超时异常。
File "C:\Python34\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
我尝试使用下面的代码访问我的用户名(div id“Id”和密码(div id“PSD”)
user = driver.find_element_by_id('Id')
和
user = WebDriverWait(driver,20).until(lambda driver:driver.find_element_by_id('Id'))
非常感谢任何帮助
网站的HTML代码如下所示:
<div id="wrapper">
<div id="panel">
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tbody>
<tr>
<td>
<div class="panel_23">
<div id="msg" class="txt_red" style="display:none"></div>
<div class="User">
<div id="Id">
<input id="Malcom" name="Malcom"
style="width: 23px;" type="text"/>
</div>
</div>
<div class="PSS">
<div id="PSD">
<input id="Xmen" name="Xmen" style="width: 23px;"
type="pass"/>
</div>
</div>
<!-- <div class="txt56">Are you Logged </div> <div class="checkbox">
<input type="checkbox" id="c1" name="cc" /><label for="c1"><span></span>
</label></div> -->
</div>
</td>
</tr>
<tr>
<tr>
</tbody>
</table>
</div>
答案 0 :(得分:0)
由于您正在使用tee logfile.txt
,您收到TimeoutException
。
使用显式等待:
Explicit Wait
另一件事是您访问user = WebDriverWait(driver, 10).until( EC.visibility_of_element_located((By.ID, "Malcom"))
user.send_keys("username")
代码而不是div
代码来访问用户名。要传递用户名,您必须访问用户名字段的input
标记。
已更新:
您在input
下的登录表单内容最适合您需要切换到框架,然后使用以下代码发送用户名和密码:
iFrame
注意:请按照Python检查语法。我已经使用java完成了它,并且它在我的最后工作正常