在同一类文件的第二个@test方法中使用数据提供程序的java未成功运行
在我的要求,我有“添加”按钮在屏幕上的“C类”。它打开弹出式模块。在那里我可以添加更多的值并保存
我的代码使用一个带有数据提供程序迭代的@Test
方法运行。但在一次迭代后失败了。因此,我用数据提供者创建了一个额外的@test
方法
成功运行第一个@test
方法后获取代码失败。找不到第一个元素属于第二个@test
方法
Failed: columns("Encounter", "account", "Encounter") org.openqa.selenium.TimeoutException Expected condition failed: waiting for visibility of element located by By.xpath: //*[@id='txtDisplayName'] (tried for 4 second(s) with 500 milliseconds interval).
public class classc extends classb {
@Test
public void Create()
{
// Redirection to the screen
obj1.actiononMenu(driver, wait, "//abbr[@class='ti-settings']", "//samp[text() = 'Focus']", "//li[2]/ul/li[1]/a");
long focusauditTimetaken = (long) obj1.javatimeout(driver);
this.wait = obj1.explicitWait(driver, (int) focusauditTimetaken);
// Clicking add button
WebElement addButton = obj1.selectElement(wait, "//div[2]/button");
obj1.clickElement(addButton);
}
@Test(dataProvider = "addingColumns")
public void columns(String displayName, String columnName, String uniqueName)
{
// Passing first value from the DataProvider (displayName)
WebElement displayColumn = obj1.selectElement(wait, "//*[@id='txtDisplayName']");
obj1.clickElement(displayColumn);
obj1.sendtext(displayColumn, displayName);
// Passing second value from the DataProvider (columnName)
WebElement columnDropdown = obj1.selectElement(wait, "//div[contains(text(), 'Select Column Name')]");
obj1.clickElement(columnDropdown);
obj1.dropdownfilter(driver, wait, "//div[@class='filter']/input", columnName);
// Passing thrid value from the Data Provider (uniqueName)
WebElement uniqueDropdown = obj1.selectElement(wait, "//div[contains(text(), 'Select Column')]");
obj1.clickElement(uniqueDropdown);
obj1.dropdownfilter(driver, wait, "//div[@class='filter']/input", uniqueName);
// Save first set values
WebElement addcolumnButton = obj1.selectElement(wait, "//button[@class='button create hvr-glow hvr-icon']");
obj1.clickElement(addcolumnButton);
}
@DataProvider(name = "addingColumns")
public Object[][] addColumns()
{
return new Object[][]
{
{"AA","BB","CC"},
{"11","22","33"}
};
}
}
c类扩展了B类
public class ClassB extends ClassA{
@Test
public void project() {
try {
obj1.implicitWait(driver, 10);
WebElement groupName = wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//*[@class='placeholder']"))));
groupName.click();
WebElement inputText = wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//*[@class='filter']//input"))));
inputText.click();
inputText.sendKeys("Par");
inputText.sendKeys(Keys.DOWN);
inputText.sendKeys(Keys.ENTER);
long timetaken = (long) obj1.javatimeout(driver);
this.wait = obj1.explicitWait(driver, (int) timetaken);
} catch (Exception e) {
System.out.println("Project group not selected " +e);
// TODO: handle exception
}
}
B类扩展了A类
public class ClassA{
WebDriver driver;
WebDriverWait wait;
Commonclass obj1 = new Commonclass();
@BeforeSuite
public void callbrowser()
{
this.driver = obj1.selectBrowser(driver, "Chrome");
}
@Test
public void login()
{
driver.get("https://Link Goes here");
long timetaken = (long) obj1.javatimeout(driver);
wait = obj1.explicitWait(driver, (int) timetaken);
WebElement signin = obj1.selectElement(wait, "//*[@id='txtSigninID']");
obj1.sendtext(signin, "My Name");
WebElement password = obj1.selectElement(wait, "//*[@id='txtPassword']");
obj1.sendtext(password, "my password");
WebElement submit = obj1.selectElement(wait, "//*[@name='btnSignIn']");
obj1.clickElement(submit);
}
}
如果我有一个@test方法,那么整个代码都会运行。为什么单个类中的两个@test方法不起作用。我正在添加testng。下面是xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test thread-count="5" name="Test">
<classes>
<class name="com.abc.def.aaa.classa"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
共 (0) 个答案