以下演示操作以图中的内容为例,图中的页面是本地的网页,小伙伴们如果需要可以加入555191854下载或者找其它的网站进行练习:
一、如何获取目标元素的文本
例如我们需要获取到“打开新Tab”这个文本:
1 package usefulmethods; 2 3 import java.util.concurrent.TimeUnit; 4 5 import org.junit.jupiter.api.AfterEach; 6 import org.junit.jupiter.api.BeforeEach; 7 import org.junit.jupiter.api.Test; 8 import org.openqa.selenium.By; 9 import org.openqa.selenium.WebDriver; 10 import org.openqa.selenium.WebElement; 11 import org.openqa.selenium.chrome.ChromeDriver; 12 13 class GetTextDemo { 14 WebDriver driver; 15 String url; 16 17 @BeforeEach 18 void setUp() throws Exception { 19 driver = new ChromeDriver(); 20 url = "C:\\Users\\acer\\eclipse-workspace\\SeleniumPractise\\PracticePage.html"; 21 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 22 driver.manage().window().maximize(); 23 } 24 25 @Test 26 void test() { 27 driver.get(url); 28 // 首先我们需要定位到这个文本文件包含在的元素标签 29 WebElement buttonElement = driver.findElement(By.id("opentab")); 30 // 定义一个String类型的变量来接收获取到的文本 31 String elementText = buttonElement.getText(); 32 // 打印获取到的文本文件 33 System.out.println("获取到的文本为:"+elementText); 34 } 35 36 @AfterEach 37 void tearDown() throws Exception { 38 Thread.sleep(2000); 39 driver.quit(); 40 } 41 }
运行结果:
二、如何获取元素的属性值
以下演示操作以图中标识的“请输入姓名”文本框为例:
1 package usefulmethods; 2 3 import java.util.concurrent.TimeUnit; 4 5 import org.junit.jupiter.api.AfterEach; 6 import org.junit.jupiter.api.BeforeEach; 7 import org.junit.jupiter.api.Test; 8 import org.openqa.selenium.By; 9 import org.openqa.selenium.WebDriver; 10 import org.openqa.selenium.WebElement; 11 import org.openqa.selenium.chrome.ChromeDriver; 12 13 class GetAttributeDemo { 14 WebDriver driver; 15 String url; 16 17 @BeforeEach 18 void setUp() throws Exception { 19 driver = new ChromeDriver(); 20 url = "C:\\Users\\acer\\eclipse-workspace\\SeleniumPractise\\PracticePage.html"; 21 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 22 driver.manage().window().maximize(); 23 } 24 25 @Test 26 void test() { 27 driver.get(url); 28 WebElement el = driver.findElement(By.name("enter-name")); 29 // 使用getAttribute方法获取属性的值,需要获取元素的那个属性就转入相应的属性名称 30 String elementAttri = el.getAttribute("name"); 31 // 将获取到的属性值打印出来 32 System.out.println("name属性的属性值为:"+elementAttri); 33 } 34 35 @AfterEach 36 void tearDown() throws Exception { 37 Thread.sleep(2000); 38 driver.quit(); 39 } 40 }
运行结果为:
如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴可以相互一起学习讨论。