selenium中的身份验证弹出问题

时间:2015-03-02 02:10:24

标签: selenium

我是selenium的新手,我在chrome和firefox中通过身份验证弹出窗口时遇到问题。任何人都可以建议我处理它的最好方法。

我尝试在网址中提供凭据,但是当每个要加载的网页都要求凭据时,它会变得越来越难,有时它也不起作用。

1 个答案:

答案 0 :(得分:0)

以下Robot实现在身份验证对话框打开时执行以下操作:

  1. 它会将UserName粘贴到Username字段的参数中,因为默认情况下控件是
  2. 然后它会按Tab键
  3. 之后,它会在密码字段中粘贴密码
  4. 再次按TAB
  5. 最后它会HIT进入
  6. JAVA中的解决方案:

    //Call this function and provide UserName and password 
    public void authenticate(String password,String Uname) throws AWTException, InterruptedException
    {
        Thread.sleep(5000);
        Robot rb=new Robot();       
    
        StringSelection stringSelection = new StringSelection(Uname);
        //Copy Path on Clipboard
        Toolkit.getDefaultToolkit().getSystemClipboard()
        .setContents(stringSelection, null);
        //Paste Clipboard Data
        rb.keyPress(KeyEvent.VK_CONTROL);
        rb.keyPress(KeyEvent.VK_V);
        rb.keyRelease(KeyEvent.VK_V);
        rb.keyRelease(KeyEvent.VK_CONTROL);
        rb.keyPress(KeyEvent.VK_TAB);
        rb.keyRelease(KeyEvent.VK_TAB);
        stringSelection = new StringSelection(password);
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
        rb.keyPress(KeyEvent.VK_CONTROL);
        rb.keyPress(KeyEvent.VK_V);
        rb.keyRelease(KeyEvent.VK_V);
        rb.keyRelease(KeyEvent.VK_CONTROL);
        rb.keyPress(KeyEvent.VK_TAB);
        rb.keyRelease(KeyEvent.VK_TAB);
        rb.keyPress(KeyEvent.VK_ENTER);
        rb.keyRelease(KeyEvent.VK_ENTER);   
    
    }