2017-08-10 17 views
0

現在、私はWindows認証ポップアップに直面しているプロジェクトに取り組んでいます。このポップアップを処理するために、私はRobotクラスを使用しています。これは正常に動作しています。しかし、私の主な問題は、同じポップアップが何度も繰り返されることです。どのように私はこれを制御できますか?誰もこの点で私を助けてもらえますか?私は1つのWindowsポップアップを制御するコードの下に書いた。Windows認証の問題のポップアップ

StringSelection username = new StringSelection("Username"); 
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);    
       rb.keyPress(KeyEvent.VK_CONTROL); 
       rb.keyPress(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_CONTROL); 

       //tab to password entry field 
       rb.keyPress(KeyEvent.VK_TAB); 
       rb.keyRelease(KeyEvent.VK_TAB); 
       Thread.sleep(2000); 

       //Enter password by ctrl-v 
       StringSelection pwd = new StringSelection("Password"); 
       Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pwd, null); 
       rb.keyPress(KeyEvent.VK_CONTROL); 
       rb.keyPress(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_V); 
       rb.keyRelease(KeyEvent.VK_CONTROL); 

       //press enter 
       rb.keyPress(KeyEvent.VK_ENTER); 
       rb.keyRelease(KeyEvent.VK_ENTER); 
      } 

答えて

1

以下のようにisAlertPresentメソッドを作成/変更して試すことができます。それはあなたを助けるかもしれません。現在のアラート

public boolean isAlertPresent() { 
    try{ 
     WebDriverWait wait = new WebDriverWait(driver, 5); 
     wait.until(ExpectedConditions.alertIsPresent()); 
     return true; 
    } 
    catch (NoAlertPresentException noAlert) { 
     return false; 
    } 
    catch (TimeoutException timeOutEx){ 
     return false; 
    } 
} 

それは認証ポップアップだ場合

まず方法以下で確認してください。あなたは以下のようにそれを処理することができます: -

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

OR

driver.get("http://UserName:[email protected]"); 

OR

JavascriptExecutorがあなたのために働いて、その後に動作しない場合は上記

。アラートを呼び出すイベントをクリックする前に実行するように注意してください。

((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }"); 

注意: - アラート確認ボックスを表示するイベントをクリックしてから使用しないでください。デフォルトでは、コード、上記のように、真の確認ボックスを設定呼び出さ

が、それはあなたを助けることを願っていた場合:)

+0

こんにちは、あなたが与えたコード、あなたが受け入れている意味/そのページ上のすべての確認ボックスで[OK]をクリックしてくださいそれは私のために働いていません。実際に私が直面している問題は、これはWebベースのポップアップではなく、Windowsベースのポップアップです。あなたは私が与えたコード、これは私が動的ウィンドウベースのポップアップを制御することができますかどうか、この点で私を助けてくださいできますか? – Smriti

+0

こんにちはShubham、この点で私を助けてもらえますか?実際、私はSeleniumで非常に新しくなっています。 – Smriti

+0

エラーを追加できますか? –