我正在尝试使用以下代码处理身份验证弹出窗口:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.http.phishy-userpass-length", 255);
profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "x.x.x.x");
driver = new FirefoxDriver(profile);
baseUrl="http://" + login + ":" + password + "@" + url;
driver.get(baseUrl + "/");
Run Code Online (Sandbox Code Playgroud)
当我执行测试时,页面显示身份验证弹出窗口,并且仍然加载直到我单击取消按钮.那一刻,我可以访问下一页,这意味着身份验证成功但仍然始终显示身份验证弹出窗口
在我的Selenium-Test(有chromedriver-2.24)中,我试图通过基本身份验证访问我的网页,并使用以下语句:
WebDriver driver = ...;
driver.get("http://admin:admin@localhost:8080/project/");
Run Code Online (Sandbox Code Playgroud)
但谷歌Chrome在控制台中给出了以下警告:
[弃用]其URL包含嵌入凭据(例如
https://user:pass@host/)的子资源请求被阻止.有关详细信息,请参阅https://www.chromestatus.com/feature/5669008342777856.
在标记的链接中提到支持被删除:
在子资源请求中删除对嵌入式凭据的支持.(已删除)
我现在的问题是,还有另一种从Selenium进行基本身份验证的方法吗?
java selenium google-chrome basic-authentication selenium-webdriver
我正在尝试使用 Playwright 进行 API 测试。简单的情况是我正在尝试获取有关用户的信息。要使用curl 执行此操作,我可以发出命令:
curl --user username:password https://example.com/api/user/id
Run Code Online (Sandbox Code Playgroud)
这将返回一些 JSON。超级简单。
我已经阅读了 Playwright 文档,观看了一些 YouTube 视频并搜索了各种来源,但不知道如何在 Playwright 中复制它!
我的请求始终得到“403 Forbidden”的响应。
在我的playwright.config.ts文件中,我添加了httpCredentials这样的内容:
curl --user username:password https://example.com/api/user/id
Run Code Online (Sandbox Code Playgroud)
与此同时,在我的apiExperiment.spec.ts文件中:
import type { PlaywrightTestConfig } from '@playwright/test';
import { devices } from '@playwright/test';
const config: PlaywrightTestConfig = {
[...]
use: {
headless: false,
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
actionTimeout: 0,
/* Base URL to use in …Run Code Online (Sandbox Code Playgroud) 使用Chrome 59支持将基本身份验证凭据放入网址 - 比如https://foo:bar@www.foo.com已经结束 - 这在不久之前曾在https://www.chromestatus.com/feature/5669008342777856中得到警告.
有没有人不得不与Selenium和Chromedriver一起解决这个问题呢?特别是在Python中?
python selenium pytest selenium-chromedriver selenium-webdriver