一、什么是自动匹配功能?

很多网站都有自动匹配功能,列如你在使用天猫搜索商品时,输入“鞋”,输入框的下面会出现很多与“鞋”有关的选项。

 

 

二、以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”问我,群里都是软件行业的小伙伴相互一起学习。

posted on 2019-05-24 08:46  时光以北暮南城  阅读(372)  评论(0编辑  收藏  举报