簡體   English   中英

如何在Selenium中處理身份驗證標頭?

[英]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));

如果要啟用身份驗證,請通過此鏈接

http://seleniumwebdrivertrainings.com/how-to-perform-b​​asic-authentication-for-firefoxdriver-chromedriver-iedriver-in-selenium-webdriver/

這是我的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM