Перед установкой / использованием плагинов Maven все абсолютные и относительные пути работали в testNG.Но После использования maven, Relative Xpath не работал.Даже я попробовал мой собственный Relative Xpath, но не сработал.Я использовал Eclipse IDE для JAVA, Selenium 3.141.59.Здесь я прикрепил мои 2 кода src / main / java и src / test / java соответственно .
phpTravelsLoginPage.java
package sqa;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class phpTravelsLoginPage {
WebDriver driver;
/* Here This Below XPath works */
By MyAccount = By.xpath("/html/body/nav/div/div[2]/ul[2]/ul/li[1]/a");
By loginBtn = By.xpath("/html/body/nav/div/div[2]/ul[2]/ul/li[1]/ul/li[1]/a");
/* But Here This Below XPath works */
// By MyAccount = By.xpath("//*[@id=\"li_myaccount\"]/a");
// By loginBtn = By.xpath("//*[@id=\"li_myaccount\"]/ul/li[]/a");
public phpTravelsLoginPage(WebDriver driver)
{
this.driver = driver;
}
// CLick on MyAccount Dropdown
public void clickOnMyAccount()
{
driver.findElement(MyAccount).click();
}
// CLick on Login Dropdown button
public void clickOnLoginButton()
{
driver.findElement(loginBtn).click();
}
/* This loginToPhptravels method will be exposed to the Test Case */
public void loginToPhptravels() throws InterruptedException
{
// Click on the MyAccount Dropdown
this.clickOnMyAccount();
// Click on the Login dropdown menu
this.clickOnLoginButton();
}
}
loginTest.java
package sqa;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import sqa.phpTravelsLoginPage;
public class loginTest {
WebDriver driver;
phpTravelsLoginPage php;
@Test
public void f() throws InterruptedException {
driver.get("https://phptravels.net");
php = new phpTravelsLoginPage(driver);
php.loginToPhptravels();
}
@BeforeTest
public void beforeTest() {
System.setProperty("webdriver.gecko.driver", "D:\\geckodriver.exe");
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
driver = new FirefoxDriver();
}
@AfterTest
public void afterTest() {
}
}
POM.XML
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sqa</groupId>
<artifactId>sqa</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
</dependencies>
</project>
Примечание. TestNG устанавливается программой «Установка нового программного обеспечения», а не через maven.