我正在编写一个硒自动化测试脚本,其中涉及将我的图片作为个人资料图片上传到门户中。该过程成功执行,直到我调用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()方法后,执行将停止。控制台中没有错误消息。
答案 0 :(得分:0)
就像您在两个 AutoIT 方法之间诱导Thread.sleep(1500);
进行硬编码的方式一样:
edprf.cfile();
Thread.sleep(1500);
runAutoIT();
在runAutoIT();
之后诱发一些 wait 以结束该过程,然后尝试将焦点集中在 Selenium 上,如下所示:
runAutoIT();
Thread.sleep(3500);
((JavascriptExecutor) driver).executeScript("window.focus();");
您可以在Return control to Selenium after executing an AutoIt script
中找到类似的讨论答案 1 :(得分:0)
虽然我迟到了几年,但以下内容对您或其他人有帮助:
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;
// pay attention to this part
Process p = Runtime.getRuntime().exec(strParameter);
p.waitFor();
//
}
答案 2 :(得分:-1)
((JavascriptExecutor) driver).executeScript("window.focus();");