【问题标题】:Syntax error on token "else", delete this token [closed]令牌“else”的语法错误,删除此令牌[关闭]
【发布时间】:2014-12-03 00:37:55
【问题描述】:

我遇到语法错误,谁能告诉我什么是错的。

控制台文本:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Syntax error on token "else", delete this token
    at gg.main(gg.java:23)

代码:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;


public class gg {

    public static void main(String[] args) {


String browser = "Chrome";

WebDriver driver = null;

if(browser.equals("Mozilla"))
    driver = new FirefoxDriver();

else if(browser.equals("Chrome"))
    System.setProperty("webdriver.chrome.driver", "F:\\chromedriver_win32\\chromedriver.exe");
    driver = new ChromeDriver();

    else if(browser.equals("IE"))
        System.setProperty("webdriver.IE.driver", "C:\\Users\\Ryuk~\\Downloads\\IEDriverServer_x64_2.43.0\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();


    driver.get("https://gmail.com");
    System.out.println(driver.getTitle());





    }

}

【问题讨论】:

标签: java google-chrome selenium


【解决方案1】:

你忘了{} 这样做:

if(browser.equals("Mozilla"))
    driver = new FirefoxDriver();

else if(browser.equals("Chrome")){
    System.setProperty("webdriver.chrome.driver", "F:\\chromedriver_win32\\chromedriver.exe");
    driver = new ChromeDriver();
}else if(browser.equals("IE")){
    System.setProperty("webdriver.IE.driver", "C:\\Users\\Ryuk~\\Downloads\\IEDriverServer_x64_2.43.0\\IEDriverServer.exe");
    driver = new InternetExplorerDriver();
}
driver.get("https://gmail.com");
System.out.println(driver.getTitle());

如果没有{},只有当你只有一行时才可能使用 if,就像你的第一部分一样

【讨论】:

    【解决方案2】:

    您的代码缺少大括号(就是这些:{} BTW)。如果你的 if 语句只涉及一行也没关系,但我建议还是使用它们以提高可读性。

    总体而言,您的代码应类似于:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.ie.InternetExplorerDriver;
    
    
    public class gg {
    
      public static void main(String[] args)
      {
    
    
         String browser = "Chrome";
    
         WebDriver driver = null;
    
         if(browser.equals("Mozilla"))
         {
          driver = new FirefoxDriver();
         }
         else 
         {
             if(browser.equals("Chrome"))
             {
                System.setProperty("webdriver.chrome.driver", "F:\\chromedriver_win32\\chromedriver.exe");
                driver = new ChromeDriver();
             }
             else
             {
                if(browser.equals("IE"))
                {
                   System.setProperty("webdriver.IE.driver", "C:\\Users\\Ryuk~\\Downloads\\IEDriverServer_x64_2.43.0\\IEDriverServer.exe");
                   driver = new InternetExplorerDriver();
                }
             }
          }
          if(driver !null)
          {
             driver.get("https://gmail.com");
             System.out.println(driver.getTitle());
          }
       }
    }
    

    我还添加了一小部分验证,以便在打印之前检查驱动程序是否不为空(即已首先分配)。

    我也希望你有一个getTitle() 的方法,否则那里也可能有问题。


    现在,


    1) *应该可以解决您的问题。

    2) 我(个人)认为它更容易阅读。

    3) 我希望您已经了解了 {} 在您的代码中的重要性。

    【讨论】:

      【解决方案3】:

      是的,您忘记将 if、elseif 和 else 语句括在大括号 {} 中。 我个人更喜欢为每个 if, ... 使用大括号,即使它只有一个语句。顺便提一句。它也使代码更具可读性;)

      这应该可行:

      if(browser.equals("Mozilla")) {
        driver = new FirefoxDriver();
      } else if(browser.equals("Chrome")) {
        System.setProperty("webdriver.chrome.driver", "F:\\chromedriver_win32\\chromedriver.exe");
        driver = new ChromeDriver();
      } else if(browser.equals("IE")) {
        System.setProperty("webdriver.IE.driver", "C:\\Users\\Ryuk~\\Downloads\\IEDriverServer_x64_2.43.0\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
      }
      
      driver.get("https://gmail.com");
      System.out.println(driver.getTitle());
      

      【讨论】:

        【解决方案4】:

        没有花括号的 if else 块在每个块中只接受一条指令。此外,良好的缩进是可读代码的基础,它可以避免你这样的麻烦。

        【讨论】:

          猜你喜欢
          • 2013-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-20
          • 2014-02-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多