如何使用命令行从属性文件更改浏览器值以运行selenium测试用例

时间:2018-01-20 20:00:44

标签: java linux selenium selenium-webdriver cmd

我想在多个浏览器上运行测试用例,因为我想从属性值更改浏览器值。但我不想手动更改它。我可以使用cmd或使用任何其他选项更新值吗?

2 个答案:

答案 0 :(得分:0)

1)在命令行中传递浏览器,如-Dbrowser=Chrome

2)在Java代码中获取命令参数值,如
String browser = System.getProperty("browser", "Chrome")
//当您在命令行

中不使用-Dbrowser=xxx时,第二个参数是defautl值

答案 1 :(得分:0)

将您的脚本转换为testng。您可以在testng.xml文件中指定浏览器值。您可以在以下位置指定浏览器:

<parameter name="browser" value="Firefox"/>

并在您的测试用例中将浏览器的值传递为:

@Parameters({ "browser" })

@BeforeTest

public void beforetest(String browser) throws Exception
{
    try {
        if (browser.equalsIgnoreCase("Firefox")) {
            System.out.println(browser);
            System.setProperty("webdriver.gecko.driver","path_to\\geckodriver.exe");;
            driver = new FirefoxDriver();
        } else if (browser.equalsIgnoreCase("chrome")) {
            System.out.println(browser);
            System.setProperty("webdriver.chrome.driver","path_to\\chromedriver.exe");
            driver = new ChromeDriver();
        } else if (browser.equalsIgnoreCase("IE")) {
            System.setProperty("webdriver.ie.driver", "path_to\\IEDriverServer.exe");
            driver = new InternetExplorerDriver();
        }
    } catch (WebDriverException e) {
        System.out.println(e.getMessage());
    }

以下是testng.xml文件示例

 <suite name="Suite"  thread-count="2" parallel="true">
  <test name="Test1">
    <parameter name="browser" value="Firefox"/>
      <classes>
        <class name="stackoverflow.parallel"/>
      </classes>
  </test> 
  <test name="Test2">
   <parameter name="browser" value="chrome"/>
    <classes>
       <class name="stackoverflow.parallel"/>
    </classes>
  </test>
</suite>