Возвращение контроля к выполнению теста Selenium после завершения автоматического выполнения - PullRequest
0 голосов
/ 27 декабря 2018

Я пишу сценарий тестирования автоматизации селена, который включает в себя загрузку моего изображения в качестве изображения профиля на портале.Процесс выполняется успешно до тех пор, пока я не вызову функцию runAutoit(), которая загружает изображение в окно проводника Windows и нажимает кнопку Открыть, но не учитывает 3 строки кода после этой точки.Подводя итог моей озабоченности - «Контроль не продолжается с выполнением селена после метода runAutoIt().

Это мой код селена, в котором я вызвал функцию runAutoIT()


package com.cstudymaven.testscript;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;

import com.cstudymaven.utilities.ReadExcel;
import com.cstudymaven.pompages.EditProfile;
import com.cstudymaven.pompages.SignInPage;
import com.cstudymaven.utilities.BaseTest;

public class TestScript extends BaseTest
{
SignInPage signin = null;
EditProfile edprf=null;

@Test
public void signUp() 
{

    JavascriptExecutor js = (JavascriptExecutor) driver;
        String[][] credentials = ReadExcel.getData(filePath, "User_Login");
    try {

        for (int i = 1; i < credentials.length; i++) {
            String email = credentials[0];
            String password = credentials[1];
            signin = new SignInPage(driver);
            signin.clickonLogin();
            Thread.sleep(1500);
            signin.enterEmail(email);
            Thread.sleep(1500);
            signin.enterPassword(password);
            signin.clicktoStart();
            edprf=new EditProfile(driver);
            wait = new WebDriverWait(driver, 10);
            Thread.sleep(1500);
            edprf.editprofile();
            Thread.sleep(1500);
            edprf.gotoprofile();
            Thread.sleep(1500);
            edprf.editlogo();
            wait = new WebDriverWait(driver, 10);
            Thread.sleep(2700);
            edprf.camera();
            Thread.sleep(2500);
            edprf.cfile();
            Thread.sleep(1500);
            runAutoIT();           

((JavascriptExecutor) driver).executeScript("window.focus();");
 js.executeScript("window.scrollBy(0,150)");  
  WebElement upld 
  =driver.findElement(By.xpath("//button[@type='submit']"));
   upld.click();

   }
   }

   catch (Exception e) 
             {
   e.printStackTrace();
   try 
   {

   } 
   catch (Exception e1) 
   {

   }

   }

   }               


    public void runAutoIT() throws Exception
    {
    String strFilePath="C:\\Users\\LOBO\\1Amanfred.jpg";    
    String strPath="C:\\Users\\LOBO\\eclipse- 
    workspace\\CaseStudyMaven\\InputData\\cstudymaven.exe";
    String strParameter=strPath+" "+strFilePath;
    Runtime.getRuntime().exec(strParameter);
    }

    }

Я уже пытался использовать метод фокусировки окна и вставлять код, который не выполняется в блоке try catch, но безуспешно. Строка кода в программе после функции runAutoit () не выполняется.

Я ожидаю, что при выполнении теста нажмет кнопку загрузки после функции runAutoit (), но на самом деле выполнение останавливается после успешного выполнения метода runAutoit (). В консоли нет сообщения об ошибке.

1 Ответ

0 голосов
/ 27 декабря 2018

Точно так же, как вы вызывали жестко запрограммированный Thread.sleep(1500); между двумя AutoIT методами:

edprf.cfile();
Thread.sleep(1500);
runAutoIT();

Индуцируйте некоторое ожидание после runAutoIT(); для процесса, чтобызавершите, а затем попытайтесь сохранить фокус на Selenium следующим образом:

runAutoIT(); 
Thread.sleep(3500);
((JavascriptExecutor) driver).executeScript("window.focus();");

Подобное обсуждение можно найти в Вернуть управление в Selenium после выполнения сценария AutoIt

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