我使用以下代码在网站上输入用户名和密码,然后登录(通过发送回车键)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.firefox()
browser.get('http://www.example.com')
username = browser.find_element_by_id("username")
password = browser.find_element_by_id("password")
username.send_keys("MyUsername")
password.send_keys("MyPassword")
password.send_keys(Keys.ENTER)
这是预期的工作,但我遇到了一些麻烦,当网站验证字段。按enter键后,返回消息“Username is required”,尽管字段已完成。你知道吗
这个问题是否与使用JS或Knockout的登录页面有关?如果是这样,我对这两个都不熟悉。有解决办法吗?你知道吗
以下是HTML格式:
<form class="form-horizontal" action="/Pretend_login" method="post">
<div class="form-group">
<div >
<input data-bind="value:email" name="username" type="email" class="form-control" id="username" placeholder="Email">
</div>
</div>
<div class="form-group">
<div >
<input data-bind="value:password" name="password" type="password" class="form-control" id="password" placeholder="Password">
</div>
</div>
<div class="form-group" data-bind="visible: error_message().length">
<div>
<span class="text-danger" data-bind="text: error_message"></span>
</div>
</div>
<div class="form-group">
<div >
<a role="button" href="/Forgotten_password">Forgotten password?</a>
</div>
</div>
<div class="form-group">
<div>
<button data-bind="click: login" type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
我不确定这是否适用于测试中的页面,但我在一个同样使用JavaScript验证用户输入的web应用程序中遇到了类似的问题。问题是,只有当另一个输入字段获得焦点时,才会触发此验证。所以你基本上可以在这里尝试一些东西:
我只能提供Java示例,因为我还没有用Python做任何事情。如果这仍然有用,请告诉我。 模糊事件的Java示例:
相关问题 更多 >
编程相关推荐