У меня есть веб-приложение с всплывающим окном безопасности Windows, как только начинается загрузка первой веб-страницы и загрузка страницы завершается только после предоставления учетных данных для входа.
Я написал следующий скрипт, но он не переходит к следующей строке кода после selenium.open("/faces/Main");
и, наконец, завершается ошибкой с сообщением об ошибке тайм-аута по умолчанию.
Результат консоли:
Timeout 30000ms
Селен1 код:
package first;
import java.io.IOException;
import com.thoughtworks.selenium.*;
import org.testng.annotations.*;
import static org.testng.Assert.*;
public class Auth_assign {
private Selenium selenium;
@BeforeClass
public void setup()
{
selenium = new DefaultSelenium("localhost",4444, "*firefox C:/Program Files/FF 7.1/firefox.exe", "http://qa02.mydomain.com");
selenium.start();
selenium.windowMaximize();
}
@AfterClass(alwaysRun=true)
public void stopSelenium() {
//this.selenium.stop();
}
@Test (description="Authentication pop-up")
public void Auth_popup() throws Exception
{
System.out.print("Unity page\n ");
try
{
selenium.open("/faces/Main");
Thread.sleep(10000);
System.out.print("Window \n ");
String[] dialog;
dialog = new String[] { "Login_Dialog.exe","Authentication Required","test46#", "test123"};
System.out.print( dialog);
Runtime.getRuntime().exec(dialog);
selenium.select("//select[@id='qryId1::criteriaItems::content']", "Customer Name");
selenium.type("//input[@id='qryId1:criterionValue::content']", "Search Company");
selenium.click("//a[@id='qryId1::search_icon']");
selenium.waitForPageToLoad("3000");
selenium.click("//a[@id='t1:0:gl1']");
} catch (SeleniumException ex) {
System.err.println(ex.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
Login.exe code
;~ ------------------------------------------------------------
;~ Login_dialog.au3
;~ To handle the Authentication Dialogbox
;~ Create By: Gaurang Shah
;~ Usage: Login_dialog.au3 "Dialog Title" "User Name" "Password"
;~ ------------------------------------------------------------
AutoItSetOption("WinTitleMatchMode","2")
if $CmdLine[0] < 3 then
msgbox(0,"Error","Supply all the Arguments, Dialog title User Name, Password")
Exit
EndIf
WinWait($CmdLine[1]) ; match the window with substring
$title = WinGetTitle($CmdLine[1]) ; retrives whole window title
ControlSend($title,"","Edit2",$CmdLine[2]);Sets User Name
ControlSend($title,"","Edit3",$CmdLine[3]);Sets Password
ControlClick($title,"","OK");