在黄瓜步骤定义中使用System.setProperty时出现多个标记错误



错误如下:-

Multiple markers at this line
- Syntax error, insert ")" to complete MethodDeclaration
- Syntax error on token ".", @ expected after this token
- Syntax error, insert "Identifier (" to complete MethodHeaderName
- Syntax error on token ",", < expected
- Syntax error, insert "SimpleName" to complete QualifiedName

System.setProperty是哪个jar文件的一部分,或者它在哪里存在?这样我就可以在我的程序中访问它和使用。

public class Loginstepdef {
        System.setProperty("webdriver.chrome.driver","E:\Selenium\chromedriver\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        @Given("^I am on the login page of the application$")
        public void output()throws InterruptedException
        {
            driver.get("https://motzie-staging.mobile-recruit.com/login");
            //Navigation navigator=driver navigator();
            //navigator.to(http://10.10.5.56/login);
        }
        @When("^I login with username (.*) and password(.*)$")
        public void output2(String username, String password) throws InterruptedException 
        {
            //WebElement loginfield = driver.findElement(By.className("ng-scope"));
            WebElement loginfield = driver.findElement(By.id("username"));
            loginfield.sendKeys(username);
            loginfield.sendKeys(password);
            WebElement loginbutton = driver.findElement(By.className("ng-scope"));  
            loginbutton.click();
        }
        @Then("^Login successfully in that account$")
        public void output3() throws InterruptedException
        {
            System.out.print("login successfully");
        }
}              

键和 in System.setProperty 的值来自 Java 系统类方法,都接受字符串值。因此,按ctrl+space不会为您带来最佳结果。

您看到的错误来自"值"字段:

"E:Seleniumchromedriverchromedriver.exe"

您必须通过以下任一选项传递 WebDriver 变体的绝对路径:

  • 转义反斜杠 ( \ ( 例如 "E:\Selenium\chromedriver\chromedriver.exe"
  • 单正斜杠 ( / ( 例如 "E:/Selenium/chromedriver/chromedriver.exe"

注意:您可以在线程"main"java.lang中的异常中找到详细的讨论.IllegalStateException:驱动程序可执行文件的路径必须由:系统属性设置


更新

当您使用cucumber时,您必须将WebDriver的初始化部分放在方法范围内,如下所示:

WebDriver driver;
@Given("^Open Firefox and Start Application$")
public void Open_Firefox_and_Start_Application() throws Throwable 
{
    System.setProperty("webdriver.chrome.driver", "E:\Selenium\chromedriver\chromedriver.exe");
    driver =  new ChromeDriver();
}
用于

转义序列,所以它给你一个错误。在路径中使用/\

System.setProperty("webdriver.chrome.driver", "E:\Selenium\chromedriver\chromedriver.exe"); 

因为写错了而引发的问题。使用 " \\ ">"/">

("webdriver.chrome.driver", "E:\\Selenium\\chromedriver\\chromedriver.exe"(;

在 main 方法中编写它:

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver","C:\Users\admin\Downloads\chromedriver_win32\chromedriver.exe");
    WebDriver driver = new ChromeDriver();;
    String url ="https://www.gmail.com";
    driver.get(url);

最新更新