我的类1是"登录"我的2班是"结账">
要运行类2(签出(,我必须首先登录(类1(,所以我的类2依赖于类1。但当我运行以下代码时,会显示一个空白的chrome屏幕:Chrome浏览器
chrome驱动程序不会转到我提供的URL,它只是停留在空白屏幕上。我的类1是一个登录类,要进行结账,我需要首先登录,所以当我这样做时,它不起作用。
请告诉我我在这里犯了什么错误?
第1类代码:
package testcases;
public class Login{
static WebDriver driver= new ChromeDriver();
@BeforeClass
public void init() {
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("URL");
}
@Test
public static void testcase1()
{
driver.findElement(By.xpath(".//*[@id='email']")).click();
driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("testid@g.com");
driver.findElement(By.xpath(".//*[@id='password']")).click();
driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("3222"); driver.findElement(By.xpath("/html/body/div[4]/div/form/div[3]/div[2]/button")).click();
}
第2类代码:
public class checkout {
static WebDriver driver= new ChromeDriver();
@BeforeClass
public void init() {
driver.manage().window().maximize();
driver.get("URL");
}
@Test(dependsOnMethods={"com.test.Login.testcase1"})
public void checkout() throws InterruptedException{
System.out.println("test");
driver.quit(); }}
testng.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none" preserve-order="true">
<test name="Test">
<classes>
<class name="com.test.Login"/>
<class name="com.test.checkout"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
错误:错误
请将Chrome驱动程序和Chrome浏览器更新为最新版本,然后重试并确认Chrome浏览器在Selenium网络驱动程序中以空白页启动
我不确定您是否遵循页面对象模型。
你需要做出相应的改变:
- 无需在签出类中创建WebDriver实例。您可以从登录类传递驱动程序的引用
- 在启动chromeDriver之前,您需要设置其路径
- 您可以引入组和依赖项组录类中的组,并通过引入
dependsOnGroups
概念使checkout()
方法成为依赖于组的方法
在这里你可以遵循这个代码:
登录.java
public class Login {
static WebDriver driver;
@BeforeClass
public void init() {
System.setProperty("webdriver.chrome.driver", "C:\Users\user***\Downloads\chromedriver_win32\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("https://www.google.com/");
}
@Test(groups={"Login.testcase1"})
public static void testcase1()
{
driver.findElement(By.xpath(".//*[@id='email']")).click();
driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("testid@g.com");
driver.findElement(By.xpath(".//*[@id='password']")).click();
driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("3222");
driver.findElement(By.xpath("/html/body/div[4]/div/form/div[3]/div[2]/button")).click();
getCheckoutPage(driver);
}
public static CheckOut getCheckoutPage(WebDriver driver) {
return new CheckOut(driver);
}
}
Checkout.java
public class CheckOut {
private WebDriver driver;
public CheckOut(WebDriver driver) {
this.driver = driver;
}
@Test(dependsOnGroups={"Login.testcase1"})
public void checkout() throws InterruptedException{
System.out.println("test");
driver.quit(); }
}