[英]How to handle Authentication header in Selenium?
我是硒的新手,并尝试处理出于安全原因已放在Web端的身份验证标头。 我正在尝试访问该网站并使用硒使用url发送数据,但是由于需要身份验证,因此无法这样做。 我已经尝试过以下提到的代码,但无法成功。
//Selenium-WebDriver Java Code for entering Username & Password as below:
driver.findElement(By.id("userID")).sendKeys("username");
driver.findElement(By.id("password")).sendKeys("pass");
driver.switchTo().alert().accept();
driver.switchTo().defaultContent();*/
//self.headers = { "Authorization": "Basic xyz=" };
/* driver.switchTo().window("Authentication Required");
driver.findElement(By.id("userID")).sendKeys("username");
driver.findElement(By.id("password")).sendKeys("pass");*/
//selenium.start("addCustomRequestHeader=true");
//selenium.windowMaximize();
//selenium.addCustomRequestHeader( "Authorization","Basic "+"xyx=" );
任何帮助或建议都可以。 提前致谢。
警报方法authenticateUsing()
使您可以跳过Http基本身份验证。
WebDriverWait wait = new WebDriverWait(driver, 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.authenticateUsing(new UserAndPassword(username, password));
如果要启用身份验证,请通过此链接
这是我的Java代码:
public class LoginPage {
private WebDriver driver;
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public void login(){
driver.get("http://localhost:8080/projectLogin/");
WebElement username = driver.findElement(By.name("iDElementHtmlUser"));
WebElement pass = driver.findElement(By.name("iDElementHtmlPassword"));
username.sendKeys("rivanMota");
pass.sendKeys("1234");
username.submit();
boolean logged = driver.getPageSource()
.contains("idLogged"); // some id that only exists on logged page.
assertTrue(logged); // True if login success
}
}
和HTML:
<input id="iDElementHtmlUser" type="text" name="username" />
<input id="iDElementHtmlPassword" type="password" name="password" />
就这些了!
尝试这个,
WebDriver driver = new ChromeDriver();
String baseUrl=”http://” + “USERNAME” + “:” + “PASSWORD” + “@” + “xyz.com”;
driver.get(baseUrl + “/”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.