gpt4 book ai didi

java - 如何使用 Selenium WebDriver 和 Java 发送 HTTP 请求代码?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:54 27 4
gpt4 key购买 nike

我使用 Selenium WebDriver 编写了测试,但在网站身份验证方面遇到问题。对于 Chrome 和 Firefox,我使用了来自 URL 的基本身份验证:

WebDriver.get("https://u:p@example.com/");

它工作正常,它绕过了身份验证弹出窗口,我的测试继续到该网站。

在 Explorer 和 Edge 中,我无法使用此功能,因为它已被禁用。我尝试使用 Robot,它适用于 Explorer,但在 Edge 中,测试卡在身份验证窗口上,它不会向用户名或密码字段发送任何 key 。

WebDriver.get("https://example.com/");
Robot robot = new Robot();
Thread.sleep(2000);
robot.keyPress(KeyEvent.VK_U);
Thread.sleep(100);
robot.keyPress(KeyEvent.VK_TAB);
Thread.sleep(100);
robot.keyPress(KeyEvent.VK_P);
Thread.sleep(100);
robot.keyPress(KeyEvent.VK_TAB);
Thread.sleep(100);
robot.keyPress(KeyEvent.VK_ENTER);

现在我已经尝试了 http 请求:

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("https://example.com/");
httpGet.addHeader(BasicScheme.authenticate(new UsernamePasswordCredentials("u", "p"), "UTF-8", false));
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity responseEntity = httpResponse.getEntity();
System.out.println(httpResponse);
WebDriver.get("https://example.com/");

我得到了这样的回复:

HTTP/1.1 200 OK for successful login

但是当网络驱动程序转到页面时,我仍然收到身份验证请求。

如何绕过身份验证窗口并登录 Edge 和 Explorer 中的网站,有什么想法吗?

最佳答案

这在 IE 中对我来说可以处理登录弹出窗口。试一试。它基本上等待登录框出现,然后尝试使用该框登录。相当简单。

WebDriverWait wait = new WebDriverWait(driver, 10);
Alert login = wait.until(ExpectedConditions.alertIsPresent());
login.authenticateUsing(new UserAndPassword("user","pass"));

关于java - 如何使用 Selenium WebDriver 和 Java 发送 HTTP 请求代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44026848/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com