弹出窗口的UnhandledAlertException问题

时间:2017-08-23 15:27:18

标签: java selenium-webdriver selenium-firefoxdriver

您好我正在使用Robot()来处理弹出的窗口。我在

处得到UnhandledAlertException
if (driver.getTitle().trim().equalsIgnoreCase(title)). 

没有更多的打开警报,但抛出了异常。

我尝试使用 -

dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);

但是我得到了忽略的问题--InvalidArgumentException

public void VerifyTitle(String title, String URL, String UserId, String Password) throws InterruptedException, IOException{

    driver.get(URL);
    driver.manage().timeouts().implicitlyWait(50000, TimeUnit.SECONDS);     
    EnterUserId(UserId);        
    EnterPassword(Password);    
    driver.manage().timeouts().implicitlyWait(50000, TimeUnit.SECONDS);
    Thread.sleep(1000);
    EnterUserId(UserId);        
    EnterPassword(Password);
    driver.manage().timeouts().implicitlyWait(50000, TimeUnit.SECONDS);
    Thread.sleep(1000);
    EnterUserId(UserId);
    EnterPassword(Password);

    try{        

        if (driver.getTitle().trim().equalsIgnoreCase(title)){
            System.out.println("PASS");

        }else
            System.out.println("FAIL");

    }catch (Exception e) {

        e.printStackTrace();

        System.out.println("FAIL");
    }       
}

public void EnterUserId(String userId) throws IOException{

    try{
    Robot rb = new Robot();     
    rb.delay(5000);
    StringSelection username = new StringSelection(userId);             
    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);
    rb.keyPress(KeyEvent.VK_TAB);                   
    rb.keyRelease(KeyEvent.VK_TAB);             
    System.out.println("UserId has been entered");
    rb.delay(5000);

    }catch (Exception e) {          
        e.printStackTrace();            
        System.out.println("UserId has not been entered");
    }

}

public void EnterPassword(String password) throws IOException{

    try {    
    Robot rb = new Robot();     
    rb.delay(5000);
    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);     
    rb.keyPress(KeyEvent.VK_TAB);               
    rb.keyRelease(KeyEvent.VK_TAB);   
    rb.keyPress(KeyEvent.VK_ENTER);             
    rb.keyRelease(KeyEvent.VK_ENTER);       
    System.out.println("Password has been entered");
    rb.delay(5000);     

    }catch (Exception e) {          
        e.printStackTrace();    
        System.out.println("Password has not been entered");
    }

}

这就是我启动浏览器的方式 -

@Parameters({"browserName"})
@BeforeTest
public void beforeTest(String browserName){     
    threadDriver = new ThreadLocal<RemoteWebDriver>();          
    if(browserName.equalsIgnoreCase("chrome")){
        System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");          
        threadDriver.set(new ChromeDriver());  
    }else {
        System.setProperty("webdriver.gecko.driver", "D:\\geckodriver.exe");           
        DesiredCapabilities dc = DesiredCapabilities.firefox();
        dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
        dc.setCapability("acceptInsecureCerts",true);   
        threadDriver.set(new FirefoxDriver(dc));  
    }           
}

0 个答案:

没有答案
相关问题