如何使用TestNG从Selenium中的主类调用全局方法

时间:2017-11-20 05:15:06

标签: javascript selenium-webdriver testng



package com.MavenLearning.Login;

import static org.testng.Assert.assertEquals;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

public class LoginOne {
 
	@Test
  public void LoginTestOne() 
	
	{
		{
			System.setProperty("webdriver.gecko.driver","C:\\Webdriver\\geckodriver.exe");
			WebDriver driver = new FirefoxDriver();
			driver.get("http://www.demo.guru99.com/v4/");
			driver.findElement(By.name("uid")).sendKeys("mngr105709");
			driver.findElement(By.name("password")).sendKeys("jajeten");
			driver.findElement(By.name("btnLogin")).click();
			assertEquals(driver.getTitle(), "Guru99 Bank Manager HomePage");
			String A = driver.getTitle();
			System.out.println(A);
			String B = "Guru99 Bank Manager HomePage";
			System.out.println(B);
			if (A.equals(B))
				System.out.println("Page Title matches");
			else
				System.out.println("Page Title Doesn't Match");
		}
  }
}




老年人,我已经在Selenium中编写了代码并将其存储在全局方法中。我不知道如何在其他课程中调用该方法。当我用Java学习Selenium时,我很容易将方法调用到不同的类,但现在仍然使用TestNG。我已经尝试导入方法包,所以一切都应该工作,但没有成功。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

来自全球,如果您的意思是public static,那么您只需要调用它,如下所示:

ClassName.functionName()

如果它不是静态的,那么你需要创建该类的对象,然后调用如下函数:

MyClass my = new MyClass();
my.MyFunctionName();

更新

您需要创建一个xml文件,特别是您需要执行的所有类。

xml的示例

<?xml version="1.0" encoding="UTF-8"?>
<suite name="example suite 1" verbose="1" >
  <test name="Regression suite 1" >
    <classes>
      <class name="com.first.example.demoOne"/>
      <class name="com.first.example.demoTwo"/>
      <class name="com.second.example.demoThree"/>
    </classes>
 </test>
</suite>

来源:

http://www.seleniumeasy.com/testng-tutorials/testngxml-example-to-execute-with-class-names

视频教程:

https://www.youtube.com/watch?v=cNhnqVWD_54