Как я могу использовать другие методы между различными Groovy скриптами - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь автоматизировать веб-сайт с помощью отличных сценариев, но я застрял, когда пытаюсь вызвать метод в другом отличном сценарии.Я пытаюсь вызвать LoginWebsite() найденный в Login groovy скрипте в MainControl groovy, но продолжаю получать следующую ошибку Cannot invoke method LoginWebsite() on null object

Я не уверен, что я 'Я делаю что-то не так и хотел бы помочь

Класс входа в систему:

class Login
{
def projectContext = context.testCase.testSuite.project.context;
def driver = projectContext.driver;
WebDriverWait wait = new WebDriverWait(driver, 10);

public boolean LoginWebsite()
{
    try
    {       
        WebElement element = driver.findElement(By.id("mainLoginBtn"));
        (new Actions(driver)).moveToElement(element).perform();
        wait.until(ExpectedConditions.elementToBeClickable(element));

        Thread.sleep(2000);
        element.click();
        Thread.sleep(2000);     
        driver.findElement(By.id("userId")).sendKeys(testRunner.testCase.testSuite.getPropertyValue("ID"));
        driver.findElement(By.id("password")).sendKeys(testRunner.testCase.testSuite.getPropertyValue("pin"));
        wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("loginBtn"))));
        driver.findElement(By.id("loginBtn")).click();
        Thread.sleep(3000);
        return true;
    }
    catch (Exception ex){
        log.info(ex.getMessage());
        return false;
    }
    return false;
}
}
context.setProperty("LoginStep",new Login())

Класс MainControl

for(String website : wList)
{
    //ChromeDriver property setters are global variables 
    //CD - ChromeDriver     CDL - ChromeDriverLocation
    //website is website URL's
    System.setProperty(com.eviware.soapui.SoapUI.globalProperties.getPropertyValue("CD"),com.eviware.soapui.SoapUI.globalProperties.getPropertyValue("CDL"));
    WebDriver driver = new ChromeDriver();
    def projectContext = context.testCase.testSuite.project.context;
    projectContext.driver = driver;
    driver.navigate().to(website);
    Thread.sleep(2000);

    def lib = testRunner.testCase.testSuite.project.getTestSuiteByName("Automation_groovy").getTestCaseByName("Website_Auto").getTestStepByName("Login")
    lib.run(testRunner,context)

    def login = context.LoginStep;
    boolean s = login.LoginWebsite();

    if(s == true)
    {
        log.info(true)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...