По моему требованию, у меня есть кнопка «Добавить», на экране появляется надпись «ClassC».Он открывает всплывающий модуль.где я могу добавить большее количество значений и сохранить.
Мой код выполняется одним методом @Test с итерацией поставщика данных.Но это не удалось после одной итерации.Итак, я создал еще один метод @test с поставщиком данных.
Ошибка при получении кода после успешного запуска первого метода @test.Отсутствие первого элемента относится ко второму методу @test.
Ошибка: столбцы («Encounter», «account», «Encounter») org.openqa.selenium.TimeoutException Ожидаемое условие не выполнено: ожидание видимостиэлемент расположен по By.xpath: // * [@ id = 'txtDisplayName'] (пробовал 4 секунды с интервалом в 500 миллисекунд).
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 -->