当我运行我的XML第一类正在运行。第一类包含@beforeTest
和@AfterTest
注释。我的@Test
注释是在第二课,但它没有运行。testNG XML文件不考虑我的第二类它的运行只有我的第一个类,第二个它的显示java.lang.NullPointerException
<suite name = "smsweb">
<test name = "login">
<classes>
<class name = "testNG.datapro" /> //Running
</classes>
</test>
<test name = "form">
<classes>
<class name = "testNG.assetscat" /> //not running
</classes>
</test>
</suite>
--1st类 “了DataPro”
package testNG;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
public class datapro {
WebDriver driver;
@BeforeTest
public void webopen() throws InterruptedException {
System.setProperty("webdriver.chrome.driver",
"C:\\Users\\saad bin usman\\Downloads\\Compressed\\chromedriver_win32_2\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
Actions a = new Actions(driver);
driver.get("http://test.com/");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
SoftAssert softassert = new SoftAssert();
String title = driver.getTitle();
String exptitle = "Cloud Tenants - Sales Management System";
String user = "admin";
String pass = "admin";
Assert.assertEquals(title, exptitle);
String url = driver.getCurrentUrl();
driver.findElement(By.xpath(".//*[@id='txtUsername']")).clear();
driver.findElement(By.xpath(".//*[@id='txtUsername']")).sendKeys(user);
driver.findElement(By.xpath(".//*[@id='txtPassword']")).clear();
driver.findElement(By.xpath(".//*[@id='txtPassword']")).sendKeys(pass);
Thread.sleep(3000);
driver.findElement(By.xpath(".//*[@id='section-login']/div/div/div[4]/button")).click();
Thread.sleep(4000);
String expectedurl = driver.getCurrentUrl();
Assert.assertNotEquals(url, expectedurl);
String formname = "asset group";
Thread.sleep(6000);
driver.findElement(By.xpath(".//div[@class='sidebar-toggler hidden-phone']")).click();
driver.findElement(By.xpath(".//*[@id='txtMenuSearch']")).clear();
driver.findElement(By.xpath(".//*[@id='txtMenuSearch']")).sendKeys(formname);
Thread.sleep(2000);
WebElement searcharea = driver.findElement(By.xpath(".//ul[@class='page-sidebar-menu']"));
WebElement abc = searcharea.findElement(By.tagName("ul"));
List<WebElement> xyz = abc.findElements(By.tagName("a"));
System.out.println("No of Count Related Your Search " + xyz.size());
int count = 0;
for (int i = 0; i < xyz.size(); i++) {
if (formname.equalsIgnoreCase(xyz.get(i).getText())) {
System.out.println("Form Name Which System Open " + xyz.get(i).getText());
count++;
xyz.get(i).click();
break;
}
}
if (count < 1) {
}
WebElement formpagename = driver
.findElement(By.xpath(".//div[@class='portlet-title']/div[@class='caption span6 text-left']"));
softassert.assertEquals(formpagename.getText().equalsIgnoreCase(formpagename.getText()),
formname.equalsIgnoreCase(formpagename.getText()));
Thread.sleep(5000L);
try {
driver.findElement(By.xpath(".//*[@id='btnAddRecord']/i")).click();
softassert.assertEquals(formpagename.getText().equalsIgnoreCase(formpagename.getText()),
formpagename.getText().equalsIgnoreCase(formpagename.getText()));
} catch (Exception e) {
System.out.println("Add New Record's Button Not Found");
}
softassert.assertAll();
Thread.sleep(8000L);
}
@AfterTest
public void closebrowser() {
driver.quit();
}
--2nd类 “assetscat”
package testNG;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.testng.annotations.Test;
import org.testng.asserts.SoftAssert;
public class assetscat {
@Test(priority = 1)
public void entername() throws InterruptedException {
datapro d = new datapro();
SoftAssert sa = new SoftAssert();
d.driver.findElement(By.xpath(".//*[@id='btnAddEditSave']")).click();
d.driver.findElement(By.xpath(".//*[@class='icon-remove-circle']")).click();
System.out.println(d.driver
.findElement(By.xpath(".//*[@id='frmAddEdit']//div[@class='control-group required error']")).getText());
// WebElement notisyb
// =d.driver.findElement(By.xpath(".//*[@id='errorNotificationBtn']"));
// System.out.println(notisyb.getText());
List<WebElement> errorelement = d.driver.findElements(By.xpath(
".//*[@id='frmAddEdit']//div[@class='control-group required error']/div/*[@data-dbpropertyname]"));
System.out.println("Mendatory Fields are ");
for (int er = 0; er < errorelement.size(); er++) {
System.out.println(errorelement.get(er).getAttribute("data-dbpropertyname"));
}
for (int e = 0; e < errorelement.size(); e++) {
// System.out.println(errorelement.get(e).getAttribute("data-dbpropertyname"));
if (errorelement.get(e).getAttribute("data-dbpropertyname").equalsIgnoreCase("Name")) {
WebElement savebut = d.driver.findElement(By.xpath(".//*[@id='btnAddEditSave']"));
errorelement.get(e).sendKeys(" ");
savebut.click();
WebElement notipannel = d.driver.findElement(By.xpath(".//*[@class='icon-remove-circle']"));
if (notipannel.isDisplayed()) {
notipannel.click();
}
List<WebElement> cond1 = d.driver.findElements(By.xpath(
".//*[@id='frmAddEdit']//div[@class='control-group required error']/div/*[@data-dbpropertyname]"));
sa.assertEquals(errorelement.size(), cond1.size());
errorelement.get(e).clear();
errorelement.get(e).sendKeys("@#$%^");
savebut.click();
if (notipannel.isDisplayed()) {
notipannel.click();
}
List<WebElement> cond2 = d.driver.findElements(By.xpath(
".//*[@id='frmAddEdit']//div[@class='control-group required error']/div/*[@data-dbpropertyname]"));
sa.assertEquals(errorelement.size(), cond2.size());
errorelement.get(e).clear();
errorelement.get(e).sendKeys("CHaracter20000CHaracter20000CHaracter20000CHaracter20000CHaracter20000");
savebut.click();
if (notipannel.isDisplayed()) {
notipannel.click();
}
List<WebElement> cond3 = d.driver.findElements(By.xpath(
".//*[@id='frmAddEdit']//div[@class='control-group required error']/div/*[@data-dbpropertyname]"));
sa.assertEquals(errorelement.size(), cond3.size());
sa.assertAll();
if (notipannel.isDisplayed()) {
notipannel.click();
}
try {
WebElement datasave = d.driver.findElement(By.xpath(".//*[@class='notification alert-success']"));
if (datasave.isDisplayed()) {
System.out.println("Afetr Enter " + errorelement.get(e).getAttribute("data-dbpropertyname")
+ " Transaction Sucussfully Saved");
break;
}
} catch (Exception e1) {
System.out.println("After Enter " + errorelement.get(e).getAttribute("data-dbpropertyname")
+ " Transaction not Saved");
}
}
else if (errorelement.get(e).getAttribute("data-dbpropertyname").equalsIgnoreCase("ShortName")) {
errorelement.get(e).clear();
errorelement.get(e).sendKeys("Sadi");
d.driver.findElement(By.xpath(".//*[@id='btnAddEditSave']")).click();
WebElement notipannel = d.driver.findElement(By.xpath(".//*[@class='icon-remove-circle']"));
if (notipannel.isDisplayed()) {
notipannel.click();
}
try {
WebElement datasave = d.driver.findElement(By.xpath(".//*[@class='notification alert-success']"));
if (datasave.isDisplayed()) {
System.out.println("Afetr Enter " + errorelement.get(e).getAttribute("data-dbpropertyname")
+ " Transaction Sucussfully Saved");
break;
}
} catch (Exception e1) {
System.out.println("After Enter " + errorelement.get(e).getAttribute("data-dbpropertyname")
+ " Transaction not Saved");
}
}
else if (errorelement.get(e).getAttribute("data-dbpropertyname").equalsIgnoreCase("Colorcode")) {
errorelement.get(e).sendKeys("Black");
d.driver.findElement(By.xpath(".//*[@id='btnAddEditSave']")).click();
WebElement notipannel = d.driver.findElement(By.xpath(".//*[@class='icon-remove-circle']"));
if (notipannel.isDisplayed()) {
notipannel.click();
}
try {
WebElement datasave = d.driver.findElement(By.xpath(".//*[@class='notification alert-success']"));
if (datasave.isDisplayed()) {
System.out.println("Afetr Enter " + errorelement.get(e).getAttribute("data-dbpropertyname")
+ " Transaction Sucussfully Saved");
break;
}
} catch (Exception e1) {
System.out.println("After Enter " + errorelement.get(e).getAttribute("data-dbpropertyname")
+ " Transaction not Saved");
}
}
}
}
}
感谢兄弟的关注。我的第一个类包含两个注解,这些是atbeforeTest和atAfterTest,而我的第二个类只包含atTest注解,当我运行我的XML文件时,只有我的第一个类正在运行,当我在第一类中粘贴atTest类时它会工作并且如何向我发送我的代码两个班? –
你还没有向我们展示你的课程是什么样子。没有这个,它很难说。 –
增加了两个类。 –