首先,我需要声明我是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");
}
答案 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));