2017-11-21 9 views
0
  1. 私はC#、Selenium、AutoIt、Google Chromeを使用しています。
  2. 私はブラウザを起動することができ、認証ポップアップを見ることができます。
  3. 以下のコードを実行するとポップアップウィンドウが消え、その後はブラウザが永遠に残ります。認証ポップアップを処理できません

    autoItX3 autoIt = new AutoItX3(); 
    Driver.Instance.Manage().Window.Maximize(); 
    Driver.Instance.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(2); 
    
    try 
    { 
        Driver.Instance.Navigate().GoToUrl(Driver.BaseAddress); 
    } 
    catch 
    { 
        return; 
    } 
    autoIt.WinWait("Authentication Required"); 
    autoIt.WinActivate("Authentication Required"); 
    autoIt.Send("admin"); 
    autoIt.Send("{TAB}"); 
    autoIt.Send("pass"); 
    autoIt.Send("{ENTER}"); 
    Driver.Instance.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(-1); 
    
+0

あなたはsikuliで試すことができます。画像ベースの自動化ツール。 –

+0

私は既にFirefox用にこれを実装していますが、うまくいきます。私はAutoItソリューションを見つけようとしています。私にもっとアイデアを与えてください。最近、URLに直接資格情報を渡してログインをスキップしましたか? –

+0

これを参照できます。https://stackoverflow.com/questions/45105254/site-authentication-webdriver-codeception/45129087#45129087 –

答えて

0

あなたは、子ウィンドウを自動化しようとしています。 Autoitは、指示されない限り子ウィンドウを表示しません。

Opt("WinSearchChildren", 1) ;0=no, 1=search children also 

Windowsサーチルーチンは、子ウィンドウを検索するだけでなく、 トップレベルウィンドウを許可します。 0 =(デフォルト)のみ1 = ハード

+0

"autoIt.WinActivate(" Authentication Required "); 、それはフォーカスがこのポップアップに行くことを意味します(これは私がgoogleから理解するものです)。とにかく私はあなたのソリューションを試して、それは動作していません。私は、URLに資格情報を埋め込み、このログインをバイパスするようなソリューションしかないと思います。 URLがページアップに入った後にドライバがコントロールを失っています。ポップアップが入りドライバがコントロールから離れます。 –

+0

Driver.Instance.Navigate()。GoToUrl(Driver.BaseAddress); autoIt.Opt( "WinSearchChildren"、1); autoIt.WinWait( "認証が必要"); autoIt.WinActivate( "認証が必要"); autoIt.Send( "admin"); autoIt。送信( "{TAB}"); autoIt.Send( "demo"); autoIt.Send( "{ENTER}"); –

+0

@MikeASP正しいタイトル/データを取得するためには、「自動ウィンドウ情報」を使用する必要があります。 また、Opt( "WinTitleMatchMode"、?)を再生します – Milos

0
  1. サーバー上の認証の実装の内部を知らなくてもコメントを作るために、トップレベルと子ウィンドウを検索するトップレベルのウィンドウを検索します。 URLに添付されたパラメータは安全ではないため、セキュリティの観点からは悪い考えです。以下のような

    http://myURL.com/index.jsp/j_security_check?j_username=username&j_password=password

    または "http://username:[email protected]/")

  2. これは、私たちの内部認証に応じて私のために働いていたものです:

    https://myURL.com/login/Login.aspx?usestandardlogin=1

    ので、その=>「のhttp: YouURL.com "+"? " + "usestandardlogin = 1"

現在、私はログイン時に私をリダイレクトします。

関連する問題