如何使用Selenium WebDriver Java处理登录弹出窗口?有没有办法使用萤火虫检查弹出窗口

时间:2016-05-24 09:29:50

标签: selenium-webdriver popup

  1. 我正在使用eclipse JAVA。
  2. 当我执行以下代码时:

    public class dbscbg {
    public static void main(String[] args)
    {
       WebDriver driver = new FirefoxDriver();
       driver.get("http://ip/link");                                             
    }
    

    可以看到身份验证弹出窗口。

  3. 如何处理?

  4. 有没有办法用萤火虫检查弹出窗口?
  5. 使用相同的查询查找stackoverflow,但不明白如何通过URL传递用户名和密码。
  6. 尝试下面的代码。对我不起作用。 driver.switchTo().alert().sendKeys("fsdf");

1 个答案:

答案 0 :(得分:0)

嗨,请按以下方式进行操作

 // waiting till alert is visible
    WebDriverWait wait = new WebDriverWait(driver, 10);      
    Alert alert = wait.until(ExpectedConditions.alertIsPresent());
or 
// alert is already present
Alert alt = driver.switchTo().alert();

if password authentication is necessary then     
alt.authenticateUsing(new UserAndPassword(uid, pwd));

如需了解更多信息,请访问http://learn-automation.com/handle-windows-authentication-using-selenium-webdriver/

<强>更新

如果上面没有工作那么请尝试如下,它肯定会工作。我使用过java机器人类

WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

     driver.get("https://www.engprod-charter.net/");
     Robot rb = new Robot();

     //Enter user name by ctrl-v
     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); 

希望这会对你有所帮助。