我知道之前已经问过"以编程方式登录"的问题,但这就是我要做的。
我有许多python功能测试,每次登录到Web应用程序以执行每个场景。登录已成为最受测试的功能,我想跳过它。这意味着避免使用UI以节省时间。我正在尝试通过使用 Requests python 库发送 post 请求来登录,然后以某种方式切换到 webdriver 并在授权部分继续测试。
这是我到目前为止所做的(代码来自另一个 SO 帖子)。
def login_robot(username,password):
import requests
# Fill in your details here to be posted to the login form.
payload = {'username': username, 'password': password}
login_url = "https://www.webapp.com/login/index.php"
# Use 'with' to ensure the session context is closed after use.
with requests.Session() as s:
s.post(login_url, data=payload)
# # An authorised request.
r = s.get('http://www.webapp.com/wall.php')
print r.text
r.text 正确打印登录名后面的页面。我应该如何将其与启动实际 Firefox 实例的 Web 驱动程序连接起来?这两个是两个完全不同的浏览器实例吗?
不是最"程序化"的方法,但最简单的解决方案是制作一个基本的"login_form.html",硒可以用来登录
<form id="login" action="https://www.webapp.com/login/index.php" method="post">
<input type="text" name="username" value="wehappyfew" />
<input type="password" name="password" value="qwerty1234" />
</form>
然后只需做:
driver.get( "file:///C:/location/of/login_form.html" )
driver.find_element_by_css_selector( "form#login" ).submit()