有人知道如何在自动化过程中使用Selenium或其他工具处理浏览器身份验证吗?
发布于 2015-10-18 22:46:23
使用几种浏览器类型/ OS /版本/分辨率等在CI解决方案中运行时,所有通过auto-it、sikuli等进行的黑客攻击只是浪费您的时间。
正确的方法是识别身份验证的实际方法,并使用Rest协议执行登录。
我使用它来获取JSESIONID cookie并将其插入selenium驱动程序。关于这一点的提示:首先转到domian的非退出url,然后设置cookie,然后转到所需的url -您已登录。
用法: rest客户端身份验证以获取JSESSION ID
有了这些信息:
browser().navigate(foo.getUrl()+"non-exiting-url");
//the information got from the rest client login:
Cookie cookie = new Cookie(name, value, domain, path, expiry, isSecure, isHttpOnly);
try {
driver.manage().addCookie(cookie);
} catch (Exception e) {
System.out.println(e.toString());
}
browser().navigate(foo.getUrl());
发布于 2016-07-05 20:54:48
我在网上读到的所有东西都对我没有帮助。因此,在发出请求之前,如下所示:
driver.get(url);
您必须运行一个新线程,如下所示:
RunScript runScript = new RunScript();
runScript.start();
在这种情况下,您可以在以下类的另一个线程上自由输入登录名和密码
public class RunScript extends Thread {
@Override
public void run() {
try {
File file = new File("D:\\jacob-1.18-x86.dll");
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
AutoItX autoIt = new AutoItX();
Thread.sleep(2000);
autoIt.winActivate("yourWindowName", "");
autoIt.winWaitActive("yourWindowName");
if (autoIt.winExists("yourWindowName")) {
autoIt.send("username{TAB}", false);
autoIt.send("password{Enter}", false);
}
}
} catch (InterruptedException ex) {
//
}
}
}
发布于 2018-05-31 17:58:43
您可以使用auto IT脚本来处理此问题
WinWaitActive("[CLASS:Chrome_WidgetWin_1]", "", time)
Send("user")
Send("{TAB}")
Send("pass")
Send("{ENTER}")
https://stackoverflow.com/questions/10395462
复制相似问题