在运行于vpn的https Web应用程序上使用Selenium

时间:2017-06-06 12:10:20

标签: java selenium login popup vpn

首先,我需要声明我是Selenium的初学者。 我正在尝试使用Selenium在firefox浏览器中测试应用程序。由于安全问题,应用程序仅适用于vpn。

我的问题出现在以下步骤中;我创建了webdriver并导航到应用程序的开始(登录)页面。我得到了一个"授权请求"弹出。如果我取消弹出窗口,那么我会进入一个页面,指出"连接不安全" (它的https地址)。在我通过之后,我失去了Selenium程序应填充用户名和密码的部分,它只停留在登录页面上。

我的问题是,有没有办法在应用程序上启动Selenium测试,以便它已经在浏览器中打开并准备(即登录)?我很高兴用户名和密码在Selenium代码中进行了硬编码。

如果无法做到这一点,如何跳过授权弹出窗口和非安全连接问题?如何以最安全的方式填充用户名和密码? 谢谢!

public static void main(String[] args) {
    System.setProperty("webdriver.gecko.driver", "C:\\Selenium-java-3.0.1\\geckodriver.exe");
    // I tried also with this code bellow in comment, but it did not work, it did not even get to login page
    //WebDriverWait wait = new WebDriverWait(driver, 10);      
    //Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
    //alert.authenticateUsing(new UserAndPassword("cfadmin", "20lipim18"));
    driver.get("https://Application_login_page.com");
    driver.findElement(By.xpath(".//*[@id='login']")).click();
    driver.findElement(By.xpath("[@id='login']")).sendKeys("Username");

}

2 个答案:

答案 0 :(得分:2)

  

如果有可能,有没有办法在已经在浏览器中打开和准备(记录)的应用程序上启动Selenium测试?

尝试使用firefox个人资料。由于selenium默认打开浏览器的新实例。你可以使用自己的firefox frofile。

这是一个实现配置文件的代码,可以嵌入到selenium代码中。

ProfilesIni profile = new ProfilesIni();
// this will create an object for the Firefox profile
FirefoxProfile myprofile = profile.getProfile("default");
// this will Initialize the Firefox driver
WebDriver driver = new FirefoxDriver(myprofile)

它还将维护会话意味着您已经在firefox中登录应用程序(默认配置文件)。然后,如果您执行该脚本,您将看到您已经登录到该应用程序。

答案 1 :(得分:0)

无法打开已经授权的页面,您必须通过selenium脚本传递用户名和密码。

您可以使用以下代码进行身份验证

WebDriverWait wait = new WebDriverWait(driver, 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword(username, password));