본문 바로가기

테스트툴/Selenium

Selenium Webdriver 링크 텍스트 요소 찾기

selenium의 링크 텍스트는 a태그를 활용하여 웹페이지의 하이퍼 링크를 식별한다

 

By.linkText() 메소드는 텍스트가 정확하게 일치하는지 판별하여 링크에 액세스한다

실습은

 

Partial Match

 

demo.guru99.com

위 페이지를 활용한다

페이지에는 click here 이라는 링크가 존재한다

package newpackage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;//webElement 사용
import org.openqa.selenium.support.ui.Select;

public class MyClass {
	public static void main(String[] args){
		System.setProperty("webdriver.chrome.driver", "c:/selenium/chromedriver.exe");
		WebDriver driver = new ChromeDriver();
		
		String getURL = "http://demo.guru99.com/test/accessing-link.html";
		driver.get(getURL);
		
		driver.findElement(By.linkText("click here")).click();
		System.out.println("Title of page is: " + driver.getTitle());
		driver.quit();
	}
}

click here로 접근하여 페이스북으로 이동한다

콘솔 결과창

만약 click here이 여러 개라면 첫번째 click here로 접근한다


By.partialLinkText() 메소드는 텍스트의 일부가 일치하는지 판별하여 링크에 액세스한다

실습 페이지는 위와 동일

package newpackage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;//webElement 사용
import org.openqa.selenium.support.ui.Select;

public class MyClass {
	public static void main(String[] args){
		System.setProperty("webdriver.chrome.driver", "c:/selenium/chromedriver.exe");
		WebDriver driver = new ChromeDriver();
		
		String getURL = "http://demo.guru99.com/test/accessing-link.html";
		driver.get(getURL);
		
		driver.findElement(By.partialLinkText("click")).click();
		System.out.println("Title of page is: " + driver.getTitle());
		driver.quit();
	}
}

click이라는 txt를 찾아 click here에 액세스한다.

콘솔 결과 창

만약에 here에driver.findElement(By.partialLinkText("here")).click();으로 코드를 바꾸면

첫번째 here이 포함된 링크인 go here로 액세스한다


동일한 링크 텍스트가 여러가지인데 첫번째 링크가 아닌 다른 링크에 액세스하려면?

By.xpath ()나 By.cssSelector (), By.tagName ()을 사용한다