一、什么是自动匹配功能?
很多网站都有自动匹配功能,列如你在使用天猫搜索商品时,输入“鞋”,输入框的下面会出现很多与“鞋”有关的选项。
二、以https://www.expedia.com/网站的城市输入框为例进行案例演示:
1 package basicweb; 2 3 import java.util.List; 4 import java.util.concurrent.TimeUnit; 5 6 import org.junit.jupiter.api.AfterEach; 7 import org.junit.jupiter.api.BeforeEach; 8 import org.junit.jupiter.api.Test; 9 import org.openqa.selenium.By; 10 import org.openqa.selenium.WebDriver; 11 import org.openqa.selenium.WebElement; 12 import org.openqa.selenium.chrome.ChromeDriver; 13 14 class Autocomplete { 15 WebDriver driver; 16 String url; 17 18 @BeforeEach 19 void setUp() throws Exception { 20 driver = new ChromeDriver(); 21 url = "https://www.expedia.com/"; 22 driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 23 driver.manage().window().maximize(); 24 } 25 26 @Test 27 void test() { 28 driver.get(url); 29 // 我想要输入的值 30 String partialText = "He"; 31 // 我想选择的值 32 String searchingText = "rmosillo, Sonora, Mexico"; 33 // 把文本框定义出来 34 WebElement text = driver.findElement(By.xpath("//label/input[@id='package-origin-hp-package']")); 35 // 在文本框中输入“我想要输入的值” 36 text.sendKeys(partialText); 37 // 将匹配到的值都定位出来,放到集合中 38 List<WebElement> xzText = driver.findElements(By.xpath("//span[@class='text']")); 39 // 通过for循环读取集合中的原始 40 for(WebElement xz:xzText) { 41 // 判断输入的值是否包含在集合中 42 if(xz.getText().contains(searchingText)) { 43 // 如果匹配就点击 44 xz.click(); 45 break; 46 } 47 } 48 } 49 50 @AfterEach 51 void tearDown() throws Exception { 52 Thread.sleep(2000); 53 driver.quit(); 54 } 55 }
如果有不明白的小伙伴可以加群“555191854”问我,群里都是软件行业的小伙伴相互一起学习。