我正在使用selenium webdriver,通过Java& TestNG的。
我刚试过以下代码:(用于启动Chrome浏览器),
package testng1package;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.AssertJUnit;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.testng.annotations.AfterTest;
public class TestNGFile {
//using firefox
//public WebDriver driver = new FirefoxDriver() ;
//using Chrome
System.setProperty("webdriver.chrome.driver", "C://Users//Roey//Desktop//chromedriver.exe");
public WebDriver driver = new ChromeDriver();
String baseurl = "http://newtours.demoaut.com/" ;
@BeforeTest
public void StartBrowser() {
}
@Test
public void Test1() {
driver.get(baseurl);
String expectedTitle = "Welcome: Mercury Tours" ;
String actualTitle = driver.getTitle();
AssertJUnit.assertEquals(actualTitle , expectedTitle) ;
driver.quit();
}
@AfterTest
public void terminateBrowser() {
driver.quit();
}
}
测试包含system.setproperty上的错误,并说:
此行的多个标记
- 令牌上的语法错误,放错位置 建筑物 - 令牌上的语法错误,删除这些 令牌
如果我正在剪切并将此代码行粘贴到@test中 - 没关系,但我想从@BeforeTest
或开始使用它(就像现在一样)。
答案 0 :(得分:1)
编辑:
好的,首先在方法中设置你的驱动程序 其次,在窗户上通往chromedriver的路径需要反斜杠,而不是向前削减。
这很有效。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
public class TestNGFile {
@Test
public void Test1() {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Roey\\Desktop\\chromedriver.exe");
WebDriver chromeDriver = new ChromeDriver();
String baseurl = "http://newtours.demoaut.com/" ;
chromeDriver.get(baseurl);
String expectedTitle = "Welcome: Mercury Tours" ;
String actualTitle = chromeDriver.getTitle();
AssertJUnit.assertEquals(actualTitle , expectedTitle) ;
chromeDriver.quit();
}
}
答案 1 :(得分:0)
System.setProperty("webdriver.chrome.driver", "C:/Users/dell/Downloads/chromedriver.exe");
WebDriver d = new ChromeDriver();
d.get("Any URL");
注意 - 在chromedriver.exe单个正斜杠的位置会这样做。希望这对你有用。
答案 2 :(得分:0)
我正在使用Eclipse。我将chromedriver.exe放在项目工作区中,您不需要System.setProperty
中的完整路径,因为Selenium知道要查找的位置。然后我将其设置在@Before
。
@Before
public void setUp() {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
driver = new ChromeDriver();
}
答案 3 :(得分:0)
如果使用Maven,则将这2个依赖项添加到pom.xml中,就可以了,现在您可以删除System.setProperty行。借助这种技术,该项目的硬编码方法更少了。
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
另外,您需要将此行添加到您的预测中。
WebDriverManager.chromedriver().setup();