1

我有几个我编写的 java 测试,并用于使用 Eclipse 运行它们。

我想将它们导入katalon并运行它们。

例如,我在这里有一个登录脚本:

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;

public class Login {
     public static void main(String args[]) throws IOException {
        IOException ioe = new IOException();
        //Initializing server
        System.setProperty("webdriver.chrome.driver", "C:/selenium/chromedriver.exe");
        ChromeDriver wd = new ChromeDriver();
        wd.manage().window().maximize();
        wd.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

        //login
        System.out.println("*** login ***");
        wd.get("<URL>");
        wd.findElement(By.xpath("//form[@id='form']/div[1]/paper-input/paper-input-container/div[2]/div/input")).click();
        wd.findElement(By.xpath("//form[@id='form']/div[1]/paper-input/paper-input-container/div[2]/div/input")).clear();
        wd.findElement(By.xpath("//form[@id='form']/div[1]/paper-input/paper-input-container/div[2]/div/input")).sendKeys("<USERNAME>");
        wd.findElement(By.xpath("//form[@id='form']/div[2]/paper-input/paper-input-container/div[2]/div/input")).click();
        wd.findElement(By.xpath("//form[@id='form']/div[2]/paper-input/paper-input-container/div[2]/div/input")).clear();
        wd.findElement(By.xpath("//form[@id='form']/div[2]/paper-input/paper-input-container/div[2]/div/input")).sendKeys("<PASSWORD>");
        wd.findElement(By.xpath("//form[@id='form']//paper-button[.='login']")).click();
        try { Thread.sleep(3000l); } catch (Exception e) { throw new RuntimeException(e); }
        if(wd.findElement(By.tagName("html")).getText().contains("please login")){
            System.out.println("Login failed");
            throw ioe;
        }//End of login

        System.out.println("Login was executed successfully!");
        System.out.println("Testcase finished successfully!");
        wd.quit();
    }
}

我想在katalon中运行它,但我不确定如何。

谢谢。

4

1 回答 1

2

我尝试在不声明类和主要方法的情况下添加现有的 java 脚本,它可以工作。在您的示例中,请删除:import org.openqa.selenium.*; 将其替换为: import org.openqa.selenium.By然后粘贴剩余脚本

public class Login {
     public static void main(String args[]) throws IOException {
}}

因此,您在 Katalon 中的自定义测试用例将是:

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By;

        IOException ioe = new IOException();
        //Initializing server
        System.setProperty("webdriver.chrome.driver", "C:/selenium/chromedriver.exe");
        ChromeDriver wd = new ChromeDriver();
        wd.manage().window().maximize();
        wd.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

        //login
        System.out.println("*** login ***");
        wd.get("<URL>");
        wd.findElement(By.xpath("//form[@id='form']/div[1]/paper-input/paper-input-container/div[2]/div/input")).click();
        wd.findElement(By.xpath("//form[@id='form']/div[1]/paper-input/paper-input-container/div[2]/div/input")).clear();
        wd.findElement(By.xpath("//form[@id='form']/div[1]/paper-input/paper-input-container/div[2]/div/input")).sendKeys("<USERNAME>");
        wd.findElement(By.xpath("//form[@id='form']/div[2]/paper-input/paper-input-container/div[2]/div/input")).click();
        wd.findElement(By.xpath("//form[@id='form']/div[2]/paper-input/paper-input-container/div[2]/div/input")).clear();
        wd.findElement(By.xpath("//form[@id='form']/div[2]/paper-input/paper-input-container/div[2]/div/input")).sendKeys("<PASSWORD>");
        wd.findElement(By.xpath("//form[@id='form']//paper-button[.='login']")).click();
        try { Thread.sleep(3000l); } catch (Exception e) { throw new RuntimeException(e); }
        if(wd.findElement(By.tagName("html")).getText().contains("please login")){
            System.out.println("Login failed");
            throw ioe;
        }//End of login

        System.out.println("Login was executed successfully!");
        System.out.println("Testcase finished successfully!");
        wd.quit();

于 2017-12-21T05:36:18.413 回答