【问题标题】:Making executable file in Selenium WebDriver with Java使用 Java 在 Selenium WebDriver 中制作可执行文件
【发布时间】:2014-04-17 23:33:52
【问题描述】:

是否可以在 java 中制作 Selenium WebDriver 可执行文件? 我已经使用 Selenium WebDriver 在 java 中编写了用于数据驱动测试的代码。我想让它成为可执行文件,以便在 Eclipse 之外可以执行它。

package pkg;

import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class LogingS {
  private WebDriver driver;
  private String baseUrl;

  @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "http://www.example.com/";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

  @Test
  public void testLogingS() throws Exception {
    driver.get(baseUrl);
    System.out.println("The current Url: " + driver.getCurrentUrl());
    driver.findElement(By.id("id_email")).clear();
    driver.findElement(By.id("id_email")).sendKeys("com");
    Thread.sleep(1000);
    driver.findElement(By.id("id_password")).clear();
    driver.findElement(By.id("id_password")).sendKeys("123");
    Thread.sleep(1000);
    System.out.println("The current Url: " + driver.getCurrentUrl());
    driver.findElement(By.id("btn_login")).submit();
    Thread.sleep(5000);
    System.out.println("The current Url: " + driver.getCurrentUrl());

  }

  @After
  public void tearDown() throws Exception {

  }
}

【问题讨论】:

  • maven 全新安装应该在目标文件夹中生成一个 jar。

标签: java eclipse testing selenium-webdriver


【解决方案1】:

您是否尝试过使用 ant 脚本来运行您的测试用例,我假设您已经使用 Junit 编写了您的测试用例。

谢谢!

【讨论】:

  • 是的,我使用 Junit 编写过。我对 ant 没有任何想法。
【解决方案2】:

我建议你为你的 selenium 测试项目创建一个可运行的 jar,这样你就可以在 Eclipse IDE 之外执行它。

这些链接将对您有所帮助:
Make executable jar file of webdriver project
Create runnable jar file for selenium project blog post
Making jar file of a test project in selenium webdriver

【讨论】:

  • 据我所知,要创建 jar 文件,它应该有 main 方法。Bt 在我的 selenium 代码中没有 main 方法。并且您发送的链接(第一个链接)也没有主要方法。
  • 如果是可运行的 jar,您可以包含一个带有 main 方法的类并以编程方式执行 junit 测试。参考这个link
【解决方案3】:

如果您是使用 jUnits 的测试用例,那么在 Eclipse 中执行它们非常简单。但在此之前,您需要执行核心 Selenium 类,这些类会非常频繁地为您提供帮助。

  • org.openqa.selenium.WebDriver:用于测试的主界面,代表理想化的网络浏览器。此类中的方法分为三类 - 浏览器本身的控制、WebElements 的选择、调试辅助
  • org.openqa.selenium.WebElement:表示一个 HTML 元素。通常,所有与页面交互相关的有趣操作都将通过此接口执行。
  • org.openqa.selenium.By:用于在文档中定位元素的机制。

以下是说明 Selenium 测试用例的示例类。

import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;

import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class TestEndToEndPages {

    private WebDriver driver;

    @Before
    public void setUp() {
        // Create a new instance of the html unit driver
        driver = new HtmlUnitDriver();

        //Navigate to desired web page
        driver.get("http://localhost:6060/WebApplication4Selenium");
    }

    @Test
    public void shouldBeAbleEnterUserNameAndClickSubmitToVerifyWelcomeMessage() 
    {
        // verify title of index page
        verifyTitle("Enter your name");

        //verify header of index page
        verifyHeaderMessage("Please enter your name");

        //enter user name as Allen
        enterUserName("Allen");

        //verify title of welcome page
        verifyTitle("Welcome");

        //verify header of welcome page
        verifyHeaderMessage("Welcome Allen!!!");

        //verify back link and click on it
        backToPreviousPage("go back");  

        //verify title of index page again to make sure link is working
        verifyTitle("Enter your name");
    }

    private void verifyTitle(String expectedTitle) {
        //get the title of the page
        String actualTitle = driver.getTitle();

        // verify title
        assertThat(actualTitle, equalTo(expectedTitle));
    }

    private void verifyHeaderMessage(String expectedHeaderMessage) {
        // find header element
        WebElement element = driver.findElement(By.tagName("h3"));

        String actualHeaderMessage = element.getText();

        // verify header text
        assertThat(actualHeaderMessage, equalTo(expectedHeaderMessage));
    }

    private void enterUserName(String userName) {
        // find the input text box
        WebElement element = driver.findElement(By.name("userName"));

        // set the user name in input text box
        element.sendKeys(userName);

        // submit form
        element.submit();
    }

    private void backToPreviousPage(String expectedLinkText) {
        // find the link by its id
        WebElement element = driver.findElement(By.id("back"));

        //get the actual link text
        String actualLinkText = element.getText(); 

        //verify link text with expected like text
        assertThat(actualLinkText, equalTo(expectedLinkText));

        // click the link
        element.click();
    }
}

来源:Test your web application’s UI with JUnit and Selenium

如果您仔细查看上述测试类中的 cmets,您将能够找到如何导航到页面或如何找到元素来执行某些操作,例如获取文本、设置值、触发任何事件等。

更新:创建可执行 JAR 文件。

既然你已经准备好工作的 JUnit 测试用例,你可以使用下面的main 方法的 sn-p 并创建一个可执行的 JAR 文件。

public static void main(String[] args) throws Exception {                    
       JUnitCore.main("foo.bar.MyTestSuite");            
}

希望这能满足您的需求。

希希尔

【讨论】:

  • 感谢您的回答。但我想要一个可执行文件。这样我就可以在 eclipse 之外执行它来执行测试用例。
  • 用可执行文件中的更多细节更新了答案。
  • 你能告诉我这里的 foo 、 bar 和 MyTestSuite 是什么吗?
  • 你的包和类有 Selenium 测试用例。
  • 你能提供你的主要方法吗?
【解决方案4】:

是的,你可以。您只需要导出为可执行的 jar 文件。 如果你想让它完全独立,只需将所有 lib 和属性文件包含在一个 jar 中。

这是 Eclipse 中的方法:文件/导出/Java/Runnable JAR 文件,然后选择启动配置以及您需要在 jar 中包含的其他内容。

【讨论】:

    【解决方案5】:

    碰巧我有一些我写的代码已经使用 maven 完成了这个工作,作为一个例子。我为你上传到了github。见https://github.com/johndeverall/executablejarseleniumwebdriverdemo

    如果您运行 package.bat(在 windows 环境中)或按照 README.md 文件中的说明进行操作,maven 将为您构建一个可执行 jar 来演示 selenium webdriver 的使用。

    阅读 pom.xml 以了解它是如何工作的。

    您需要为此在您的机器上设置 maven(如果尚未设置),但这很简单,无论如何都值得做。

    【讨论】:

      【解决方案6】:

      导出为jar文件,保存在本地,创建批处理文件并调用jar来执行你的脚本。

      【讨论】:

        【解决方案7】:

        在工作台中创建一个新的 JAR 文件:

        1. 从上下文菜单或菜单栏的“文件”菜单中,选择“导出”。

        2. 展开 Java 节点并选择 JAR 文件。点击下一步。

        3. 在 JAR 文件规范页面中,在选择要导出的资源字段中选择要导出的资源。

        4. 在“选择导出目标”字段中,键入或单击“浏览”以选择 JAR 文件的位置并完成

        5. 打开 CMD,移动到你的 .jar

        6. 使用以下命令调用 jar 文件:- java -jar xxx.jar

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-04
          • 1970-01-01
          • 2013-06-13
          • 2020-02-17
          • 2020-09-08
          • 2016-06-09
          • 2016-01-17
          相关资源
          最近更新 更多