передать имя элемента другому методу классов - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть файл объектов, в котором я передаю имена вкладок, такие как Действия, Рабочие задания, вкладки уведомлений, в класс объектовобъектов, где определены элемент вкладки и его действия. Если имя этой вкладки не видно, мы должны нажать на кнопку со стрелкой и нажать на элемент. И я назвал этот элемент как tabNameItem. Не ясно, как добавить имя элемента вкладки в этом методе. Следующий метод выдает ошибку: «Затем на вкладках пользователь нажимает« accountWorkOrdersTab »# AccountsPageSteps.from_the_tabs_User_clicks_on_tab (WebElement) cucumber.runtime.CucumberException: не знаю, как преобразовать« accountWorkOrdersTab »в org.openle. Ваш собственный конвертер: " Метод вызова:

@Then("^from the tabs User clicks on \"([^\"]*)\"$")
public void from_the_tabs_User_clicks_on_tab(WebElement tabname) throws Throwable {
    serviceCloudAccountsPageObject.openAccountsTabs(tabname);
}

Класс действия:

@FindBy(xpath = "//a[@text()='Work Order')]")
public WebElement accountWorkOrdersTab;

@FindBy(xpath = "//span[contains(.,'Work Order')]")
public WebElement accountWorkOrdersTabItem;

publi c void openAccountsTabs (WebElement tabName ) {

    if(verificationHelper.isDisplayed(tabName)){
        tabName.click();
        System.out.println(tabName.getText() +" tab displayed & is clicked");
    }
    else {

        moreTab.click();
        accountWorkOrdersTabItem.click();
        System.out.println("WorkOrder tab not displayed & is clicked from More tab");

    }
}

}

1 Ответ

0 голосов
/ 15 февраля 2020

Не передавайте WebElement в файл объектов, просто передайте строку. from_the_tabs_User_clicks_on_tab (строковое имя табуляции)

На основе этого строкового значения вы можете использовать регистрацию случая и возвращать webElement.

public WebElement returnElement(String tabname) {
    WebElement returnElement = null;


    switch (elementName) {
    case "tabname1":
        returnElement = driver.findElement(By.xpath("//a[@text()='Work Order')]"));
        break;
    case "tabname2":
        returnElement = driver.findElement(By.xpath("//span[contains(.,'Wor Order')]"));;
        break;
default:
        break;
    }

    return returnElement;
}

С помощью приведенного выше кода вы должны получить требуемый веб-элемент, и вы можете сделайте свои действия на элементе возврата.

Надеюсь, у вас есть идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...