2017-05-09 71 views
0

我正在尝试接受用户输入,然后将其存储到变量中,并且希望将该输入用于我的程序。在启动URL之前提示用户在硒web驱动程序中输入

这是我的代码,代码是要求用户输入,但不加载URL。它只是启动驱动程序。请有人纠正我。

当前的行为:

  1. 启动驱动器(IE显示消息“这是wendriver服务器的初始启动页”
  2. 在提示和点击询问的提示。我把我的输入OK。 完蛋了..是没有得到执行的代码之后,请帮我

enter image description here

public class app{ 

    public static void main(String[] args) throws Throwable 
    { 

    System.setProperty("webdriver.ie.driver", "C:\\Automation\\IEDriverServer.exe"); 
    WebDriver driver = new InternetExplorerDriver(); 
    JavascriptExecutor js = (JavascriptExecutor) driver; 
    js.executeScript("window.promptResponse=prompt('Please enter the USER ID')"); 

    if(isAlertPresent(driver)) { 
     // switch to alert 
     Alert alert = driver.switchTo().alert(); 

     // sleep to allow user to input text 
     Thread.sleep(10000); 

     // this doesn't seem to work 
     alert.accept(); 
     String ID = (String) js.executeScript("return window.promptResponse"); 


    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 


    driver.get("my application URL"); 
    driver.findElement(By.name("USERID")).sendKeys("username"); 
    driver.findElement(By.name("user_pwd")).sendKeys("mypwd"); 
    driver.findElement(By.name("submit")).submit(); 
    ....... 
    ...... 
    // some more code which is doing my application fucntionality 
    ....... 
    ...... 
    ........ 

    private static boolean isAlertPresent(WebDriver driver) { 
     try 
      { 
       driver.switchTo().alert(); 
       return true; 
      } // try 
      catch (NoAlertPresentException Ex) 
      { 
       return false; 
      } 
    } 

    } 
+0

IE显示消息“这是Wendriver服务器的初始启动页面”对我来说还行。但是你在哪里找到'Alert'或'User input prompt'?你能分享一个相同的快照吗? – DebanjanB

+0

新增了屏幕截图。让我知道你是否无法查看 – Loga

+0

如果你手动接受提示而不是使用'alert.accept()',会发生什么? –

回答

0

尝试下面的代码;它应该服务于你的目的:

public class app{ 

    public static void main(String[] args) throws Throwable 
    { 

    System.setProperty("webdriver.ie.driver", "C:\\Automation\\IEDriverServer.exe"); 
    WebDriver driver = new InternetExplorerDriver(); 
    JavascriptExecutor js = (JavascriptExecutor) driver; 
    js.executeScript("window.promptResponse=prompt('Please enter the USER ID')"); 

    isAlertPresent(driver); 

    String ID = (String) js.executeScript("return window.promptResponse"); 

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 


    driver.get("my application URL"); 
    driver.findElement(By.name("USERID")).sendKeys("username"); 
    driver.findElement(By.name("user_pwd")).sendKeys("mypwd"); 
    driver.findElement(By.name("submit")).submit(); 
    } 

    private static void isAlertPresent(WebDriver driver) { 
     try 
      { 
       driver.switchTo().alert(); 
       driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // even though not needed 

       isAlertPresent(driver); 
      } // try 
      catch (NoAlertPresentException Ex) 
      { 

      } 
    } 

} 
+0

非常感谢Kushal :)。它正在工作。 – Loga

+0

@Loga:您可以将我的答案标记为已接受,这就是您想要的。 – kushal

0

如果您需要输入(即。 URL),那么你可以使用Java Swing的JOptionPaneshowInputDialog()方法。

代码片段:

String URL =JOptionPane.showInputDialog(null,"Enter URL"); 
相关问题