我正在尝试根据用户的选择在浏览器中启动Web应用程序。为此,我使用了IF条件/ Switch Case。在这两种情况下,应用程序都没有在IE11中启动。但是同样的应用程序在Firefox&铬。
如果我不使用For循环或Switch案例,将浏览器名称硬编码为IE,则应用程序在IE11浏览器中启动并继续测试而没有任何问题。下面的代码可能有什么问题
//Attempt 1. Below code NOT WORKING
log.info("browser name received in utils is :" + browser);
switch(browser.toLowerCase())
{
case "firefox":
log.info("browser name before case firefox :" + browser);
try
{
log.info("Launching Firefox browser");
System.setProperty("webdriver.gecko.driver",".\\drivers\\geckodriver.exe");
d = new FirefoxDriver();
d.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS) ;
}
catch (Exception e)
{
log.info("Not able to launch browser");
}
log.info("browser name after case firefox :" + browser);
case "iexplorer":
log.info("browser name before case IE :" + browser);
try
{
log.info("Launching IE browser");
System.setProperty("webdriver.ie.driver", ".\\drivers\\IEDriverServer.exe");
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
WebDriver d = new InternetExplorerDriver();
}catch (Exception e)
{
log.info("Not able to launch IE browser");
}
log.info("browser name after case IE :" + browser);
case "chrome":
log.info("browser name before case chrome :" + browser);
try
{
log.info("Launching Chrome browser");
System.setProperty("webdriver.chrome.driver", ".\\drivers\\chromedriver.exe");
d = new ChromeDriver();
d.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS) ;
}catch (Exception e)
{
log.info("Not able to chrome browser");
}
log.info("browser name after case chrome :" + browser);
}
----------尝试输出的日志输出-----------
2018-05-02 19:02:27 INFO Utils:75 - utils收到的浏览器名称是:iexplorer 2018-05-02 19:02:27 INFO Utils:96 - IE之前的浏览器名称:iexplorer 2018-05-02 19:02:27 INFO Utils:99 - 启动IE浏览器 启动InternetExplorerDriver服务器(32位) 2.53.1.0 在港口45158上听 仅允许本地连接 2018年5月2日下午7:02:29 org.openqa.selenium.remote.ProtocolHandshake createSession 信息:检测到的方言:OSS 2018-05-02 19:02:29 INFO Utils:109 - IE之后的浏览器名称:iexplorer 2018-05-02 19:02:29 INFO Utils:112 - 案例chrome之前的浏览器名称:iexplorer 2018-05-02 19:02:29 INFO Utils:115 - 启动Chrome浏览器 在9315端口启动ChromeDriver 2.36.540470(e522d04694c7ebea4ba8821272dbef4f9b818c91) 仅允许本地连接。 2018年5月2日下午7:02:31 org.openqa.selenium.remote.ProtocolHandshake createSession 信息:检测到的方言:OSS 2018-05-02 19:02:31 INFO Utils:124 - 案例镶嵌后的浏览器名称:iexplorer
答案 0 :(得分:0)
好的,您的日志输入显示浏览器已推出。如果它关闭或者你没有访问权限,那么在创建你的IED驱动程序时,问题可能在你的驱动程序变量中:
// Change from
WebDriver d = new InternetExplorerDriver();
// to:
d = new InternetExplorerDriver();
假设您的var d
是全局的,它将解决您的问题。由于您正在创建一个具有相同名称的新名称,因此在方法结束时它将丢失其引用。