我得到语法错误有人可以告诉我什么是错的。
控制台文字:
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());
}
}
答案 0 :(得分:3)
你忘记了{}
这样做是这样的:
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());
如果没有{}
,只有只有一行(如第一部分
答案 1 :(得分: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)我希望您已经了解了{}
在您的代码中的重要性。
答案 2 :(得分:0)
是的,您忘了将if,elseif和else语句括在括号{}中。 我个人更喜欢为每个使用大括号,即使它只有一个陈述。顺便说一句。它使代码更具可读性;)
这应该有效:
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());
答案 3 :(得分:0)
如果没有花括号的else块只接受每个块中的一条指令。此外,一个好的缩进是可读代码的基础,它会避免你这样的麻烦。