XPath에는 텍스트, Follo가 포함됩니다.wing 셀레늄의 형제자매 및 조상

XPath 포함이란 무엇입니까?

XPath에는 다음이 포함됩니다. 특정 텍스트가 포함된 웹 요소를 검색하는 데 사용되는 Xpath 표현식 내의 함수입니다. 웹페이지 전체에서 XPath contain() 함수를 사용하여 주어진 텍스트 값과 일치하는 모든 요소를 ​​추출할 수 있습니다. XPath의 포함에는 부분 텍스트가 있는 요소를 찾는 기능이 있습니다.

예 - 텍스트가 포함되어 있습니다.
여기 있습니다archi앵커에는 'SAP M'이라는 텍스트가 포함되어 있습니다.

"//h4/a[contains(text(),'SAP M')]"

XPath에는 다음이 포함됩니다.

참고: 다음을 연습할 수 있습니다.wing 이에 대한 XPath 연습 https://demo.guru99.com/test/selenium-xpath.html

간단한 경우 xpath 테스트 스크립트에 대한 복잡한 웹 요소를 찾을 수 없으므로 XPath 1.0 라이브러리의 기능을 사용해야 합니다. 이러한 기능을 조합하면 보다 구체적인 XPath를 만들 수 있습니다.

FOLLOwing XPath의 형제

A Selenium Webdriver의 형제 상위 요소의 형제인 웹 요소를 가져오는 데 사용되는 함수입니다. 상위 요소가 알려진 경우 Selenium webdriver에서 Xpath 표현식의 형제 속성을 사용할 수 있는 웹 요소를 쉽게 찾을 수 있습니다.

XPath 예의 형제:
여기서는 'a'의 형제 요소를 기반으로 'h4'를 찾습니다.

"//div[@class='canvas- graph']//a[@href='/accounting.html'][i[@class='icon-usd']]/following-sibling::h4"

FOLLOwing XPath의 형제

선조: 상위 요소를 기반으로 요소를 찾으려면 XPath의 조상 속성을 사용할 수 있습니다.

FOLLOwing XPath의 형제

예제를 사용하여 이 3가지 기능을 이해해 보겠습니다.

테스트 단계:

참고 : 튜토리얼 생성일 이후 Guru99 홈페이지가 업데이트되었으므로 테스트를 실행하려면 데모 사이트를 대신 사용하십시오.

  1. We Buy Orders 신청서를 클릭하세요. https://demo.guru99.com/test/guru99home/
  2. '가장 인기 있는 강좌' 섹션에서 텍스트가 'SELENIUM'인 WebElement의 형제인 모든 Web Elements를 검색하세요.
  3. XPath 텍스트를 사용하여 요소, 상위 항목 및 형제 기능이 포함된 요소를 찾습니다.

FOLLOwing XPath의 형제

USING에는 텍스트와 XPath 형제가 포함되어 있습니다.

import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

public class SiblingAndParentInXpath {

    @Test

    public void testSiblingAndParentInXpath(){

    	WebDriver driver;
    	String driverPath = "C:\\geckodriver.exe";
    	System.setProperty("webdriver.gecko.driver", driverPath);
        driver = new FirefoxDriver();        
        
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://demo.guru99.com/test/guru99home/");

        //Search element inside 'Popular course' which are sibling of control 'SELENIUM' ,Here first we will find a h2 whose text is ''A few of our most popular courses' ,then we move to its parent element which is a 'div' , inside this div we will find a link whose text is 'SELENIUM' then at last we will find all of the sibling elements of this link('SELENIUM')
        
        List <WebElement> dateBox = driver.findElements(By.xpath("//h2[contains(text(),'A few of our most popular courses')]/parent::div//div[//a[text()='SELENIUM']]/following-sibling::div[@class='rt-grid-2 rt-omega']"));

        //Print all the which are sibling of the the element named as 'SELENIUM' in 'Popular course'
        for (WebElement webElement : dateBox) {
            System.out.println(webElement.getText());
        }     

        driver.close();
    }
}

출력은 다음과 같습니다.

USING에는 텍스트와 XPath 형제가 포함되어 있습니다.

Selenium의 XPath 조상

Selenium의 XPath 조상 특정 레이어에서 특정 멤버의 조상을 찾아주는 기능입니다. 반환될 조상의 수준이나 구성원의 수준에 상대적인 조상의 수준을 명시적으로 지정할 수 있습니다. 계층 수를 반환합니다.archi사용자가 원하는 특정 조상을 찾아 조상으로부터 cal 단계를 밟습니다.

이제 텍스트가 'SELENIUM'인 앵커의 조상의 도움을 받아 '인기 코스' 섹션의 모든 요소를 ​​검색해야 한다고 가정합니다.

여기서 xpath 쿼리는 다음과 같습니다.

"//div[.//a[text()='SELENIUM']]/ancestor::div[@class='rt-grid-2 rt-omega']/following-sibling::div"

완전한 코드

import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

public class AncestorInXpath{

@Test

    public void testAncestorInXpath(){

        WebDriver driver = new FirefoxDriver();             
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.get("https://demo.guru99.com/test/guru99home/");

        //Search All elements in 'Popular course' section 
		//with the help of ancestor of the anchor whose text is 'SELENIUM'

        List <WebElement> dateBox = driver.findElements(By.xpath("//div[.//a[text()='SELENIUM']]/ancestor::div[@class='rt-grid-2 rt-omega']/following-sibling::div"));

        //Print all the which are sibling of the element named as 'SELENIUM' in 'Popular course'

        for (WebElement webElement : dateBox) {
            System.out.println(webElement.getText());
        }
     
        driver.quit();
    }
}

출력은 다음과 같습니다.

완전한 코드

AND 및 OR 사용

AND 및 OR를 사용하면 XPath 표현식에 2가지 조건을 넣을 수 있습니다.

  • AND의 경우 두 조건이 모두 참이어야만 요소를 찾습니다.
  • OR의 경우 2가지 조건 중 하나라도 true이면 요소만 찾습니다.

여기서 XPath 쿼리는 다음과 같습니다.

Xpath=//*[@type='submit' OR @name='btnReset']

Xpath=//input[@type='submit' and @name='btnLogin']

AND 및 OR 사용

테스트 단계:

  1. We Buy Orders 신청서를 클릭하세요. https://demo.guru99.com/v1/
  2. 이 섹션에서는 위의 데모 사이트를 사용하여 XPath의 다양한 기능을 가진 요소를 검색합니다.

AND 및 OR, 상위, 시작 및 XPath 축을 사용하여 요소를 찾습니다.

AND OR 예

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class AND_OR {

	public static void main(String[] args) {
		WebDriver driver;
		WebElement w,x;
		System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
		 driver= new ChromeDriver();
 		 
         // Launch the application
     	 driver.get("https://www.guru99.com/");
     	 
     	//Search element using OR in the xpath
     	 w=driver.findElement(By.xpath("//*[@type='submit' OR @name='btnReset']"));
      	
     	 //Print the text of the element
			System.out.println(w.getText());
			
		//Search element using AND in the xpath
			x=driver.findElement(By.xpath("//input[@type='submit' and @name='btnLogin']"));	
			 
		//Print the text of the searched element
			System.out.println(x.getText());
			 
	//Close the browser
     driver.quit();
	}

}

Selenium의 XPath 부모

셀레늄의 부모 웹 페이지에서 현재 선택된 노드의 상위 노드를 검색하는 데 사용되는 방법입니다. 요소를 선택하고 Xpath를 사용하여 상위 요소를 가져와야 하는 상황에서 매우 유용합니다. 이 메서드는 부모의 부모를 가져오는 데에도 사용됩니다.

여기서 XPath 쿼리는 다음과 같습니다.

Xpath=//*[@id='rt-feature']//parent::div

Selenium의 XPath 부모

부모를 사용하는 XPath

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class Parent {

	public static void main(String[] args) {
		WebDriver driver;
		WebElement w;
		
		System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
		 driver= new ChromeDriver();
 		 
         // Launch the application
     	 driver.get("https://www.guru99.com/");
     	 
     	 //Search the element by using PARENT
     	 w=driver.findElement(By.xpath("//*[@id='rt-feature']//parent::div"));
      	
		//Print the text of the searched element
     	 System.out.println(w.getText());
	 
	//Close the browser
     driver.quit();

	}

}

시작

Starts-with 기능을 사용하면 새로 고침이나 클릭, 제출 등과 같은 기타 작업 시 속성이 동적으로 변경되는 요소를 찾을 수 있습니다.

여기서 XPath 쿼리는 다음과 같습니다.

Xpath=//label[starts-with(@id,'message')]

시작

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class StartsWith {

	public static void main(String[] args) {
		WebDriver driver;
		WebElement w;
		
		System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
		 driver= new ChromeDriver();
 		 
         // Launch the application
     	 driver.get("https://www.guru99.com/");
     	 
     	 //Search the element by using starts-with
     	 w=driver.findElement(By.xpath("//label[starts-with(@id,'message')]"));
     	
     	 //Print the text of the searched element
     	System.out.println(w.getText());
     	 
     	//Close the browser
	        driver.quit();
	}

}

Xpath 축

XPath 축을 사용하면 동적이고 매우 유용한 정보를 찾을 수 있습니다.plex 웹페이지의 요소. XPath 축에는 요소를 찾는 여러 가지 방법이 포함되어 있습니다. 여기에서는 몇 가지 방법에 대해 설명합니다.

폴로wing: 이 함수는 특정 구성 요소의 직접 요소를 반환합니다.

여기서 XPath 쿼리는 다음과 같습니다.

Xpath=//*[@type='text']//following::input

Follo를 사용하는 XPathwing
follo를 사용하는 XPathwing
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class Following {

	public static void main(String[] args) {
		WebDriver driver;
		WebElement w;
		
		System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
		 driver= new ChromeDriver();
 		 
         // Launch the application
     	 driver.get("https://www.guru99.com/");
     	 
     	 //Search the element by using Following method
     	 w=driver.findElement(By.xpath("//*[@type='text']//following::input"));
      	
		//Print the text of the searched element
     	 System.out.println(w.getText());
	 
	//Close the browser
     driver.quit();
	}

}

선행: 이 함수는 특정 요소의 이전 요소를 반환합니다.

여기서 XPath 쿼리는 다음과 같습니다.

Xpath= //*[@type='submit']//preceding::input

선행을 사용하는 XPath

선행을 사용하는 XPath
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class Preceding {

	public static void main(String[] args) {
		
		WebDriver driver;
		WebElement w;
		
		System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
		 driver= new ChromeDriver();
 		 
         // Launch the application
     	 driver.get("https://www.guru99.com/");
     	 
     	 //Search the element by using preceding method
     	 w=driver.findElement(By.xpath("//*[@type='submit']//preceding::input"));
      	
		//Print the searched element
     	 System.out.println(w.getText());
	 
	//Close the browser
     driver.quit();

	}

}

d) 하위 항목: 이 함수는 특정 요소의 하위 요소를 반환합니다.

여기서 XPath 쿼리는 다음과 같습니다.

Xpath= //*[@id='rt-feature']//descendant::a

하위 항목을 사용하는 XPath

하위 항목을 사용하는 XPath
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class Descendant {

	public static void main(String[] args) {
		WebDriver driver;
		WebElement w;
		System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
		 driver= new ChromeDriver();
 		 
         // Launch the application
     	 driver.get("https://www.guru99.com/");
     	 
     	 //Search the element by using descendant method
     	 w=driver.findElement(By.xpath("//*[@id='rt-feature']//descendant::a"));
      	
		//Print the searched element
     	 System.out.println(w.getText());
	 
	//Close the browser
     driver.quit();

	}

}

요약

  • 일반 XPath를 사용하여 요소를 찾을 수 없는 경우가 있습니다. 이러한 상황에서는 xpath 쿼리와 다른 기능이 필요합니다.
  • XPath 포함, 상위, 조상, follo와 같은 몇 가지 중요한 XPath 함수가 있습니다.wing- 형제자매 등
  • 이러한 기능을 사용하여 com을 만들 수 있습니다.plex XPath 표현식.