如何以编程方式登录,然后使用 python 切换到 WebDriver



我知道之前已经问过"以编程方式登录"的问题,但这就是我要做的。

我有许多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()

最新更新