我正在尝试编写一个 switch 语句,该语句将根据存在的任何搜索文本框在搜索字段中键入搜索词。我有以下代码。但我收到“控制不能从一个案例标签中失败”错误。
switch (searchType) { case "SearchBooks": Selenium.Type("//*[@id='SearchBooks_TextInput']", searchText); Selenium.Click("//*[@id='SearchBooks_SearchBtn']"); case "SearchAuthors": Selenium.Type("//*[@id='SearchAuthors_TextInput']", searchText); Selenium.Click("//*[@id='SearchAuthors_SearchBtn']"); }
控制不能从一个案例标签 ( case "SearchBooks":) 转移到另一个案例标签 ( ) 控制不能从一个案例标签 ( case "SearchAuthors":) 转移到另一个案例标签 ( )
控制不能从一个案例标签 ( case "SearchBooks":) 转移到另一个案例标签 ( )
case "SearchBooks":
控制不能从一个案例标签 ( case "SearchAuthors":) 转移到另一个案例标签 ( )
case "SearchAuthors":
你错过了一些休息时间:
switch (searchType) { case "SearchBooks": Selenium.Type("//*[@id='SearchBooks_TextInput']", searchText); Selenium.Click("//*[@id='SearchBooks_SearchBtn']"); break; case "SearchAuthors": Selenium.Type("//*[@id='SearchAuthors_TextInput']", searchText); Selenium.Click("//*[@id='SearchAuthors_SearchBtn']"); break; }
没有它们,编译器会认为您在执行下面的行case "SearchAuthors":后立即尝试执行下面的行case "SearchBooks":,这在 C# 中是不允许的。
break通过在每个案例的末尾添加语句,程序在完成后退出每个案例,无论searchType.
break
searchType