自动化测试代码编译报错:无效转义序列问题咨询
解决Java中无效转义序列的编译错误
别担心,这是Java新手常踩的典型小坑,很容易搞定!
问题根源
你代码里的这一行出了问题:
System.setProperty("webdriver.gecko.driver", "D:\workbox\Online Store\geckodriver.exe");
Java里的\是转义字符,专门用来表示那些没法直接输入的特殊字符(比如换行\n、制表符\t)。当你写\w、\O这种组合时,Java会把它们当成未定义的转义序列,自然就抛出编译错误了。
两种修复方案
你可以任选一种方法解决:
方案1:用双反斜杠转义
把路径里的每个\替换成\\,这样Java就会把它解析成普通的反斜杠字符:
System.setProperty("webdriver.gecko.driver", "D:\\workbox\\Online Store\\geckodriver.exe");
方案2:用正斜杠代替反斜杠
Java处理文件路径时完全支持正斜杠/,而且不需要转义,写起来更省心:
System.setProperty("webdriver.gecko.driver", "D:/workbox/Online Store/geckodriver.exe");
修正后的完整代码
这里给你贴出可以直接运行的完整代码:
package Automationframework; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class FirstTestClass { public static void main(String[] args) throws InterruptedException { // 选其中一种写法即可 System.setProperty("webdriver.gecko.driver", "D:\\workbox\\Online Store\\geckodriver.exe"); // System.setProperty("webdriver.gecko.driver", "D:/workbox/Online Store/geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.get("http://www.store.demoqa.com"); System.out.println("Successfully opened the website www.Store.Demoqa.com"); Thread.sleep(5000); driver.quit(); } }
内容的提问来源于stack exchange,提问作者Lokesh Sharma
相关产品推荐
相关产品推荐

