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

问题描述 投票:0回答:1

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。我已经尝试导入方法包,所以一切都应该工作,但没有成功。在此先感谢您的帮助。

javascript selenium-webdriver testng
1个回答
1
投票

来自Global,如果你的意思是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

© www.soinside.com 2019 - 2024. All rights reserved.