Selenium 自动建议列表的XPath不工作

Selenium 自动建议列表的XPath不工作,selenium,selenium-webdriver,xpath,ui-automation,Selenium,Selenium Webdriver,Xpath,Ui Automation,在上,我尝试使用自动建议框验证搜索。 我写了以下代码: public static void verifySearch() { try { WebElement searchbar = driver.findElement(By.id("search-box-input")); searchbar.sendKeys("sea"); // Thread.sleep(10); WebDri

在上,我尝试使用自动建议框验证搜索。 我写了以下代码:

public static void verifySearch() {
        try {
            WebElement searchbar = driver.findElement(By.id("search-box-input"));
            searchbar.sendKeys("sea");
            // Thread.sleep(10);
            WebDriverWait wait = new WebDriverWait(driver,30);
            wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//ul[@role='listbox']/li")));

            List<WebElement> list = driver.findElements(By.xpath("//ul[@role='listbox']//li"));


            System.out.println("Total no of suggestions in search box:::====> " + list.size());

            for (int i = 0; i < list.size(); i++) {

                System.out.println(list.get(i).getText());

                if (list.get(i).getText().contains("Seattle WA")) {
                    /*
                     * JavascriptExecutor js = (JavascriptExecutor)driver;
                     * js.executeScript("arguments[0].click();", list.get(i));
                     */

                    list.get(i).click();

                    break;
                    }
            }

            System.out.println("out");


        } catch (Exception e) {
            // TODO Auto-generated catch block
            System.out.println(e);
            e.printStackTrace();
        }
这里是自动建议列表,我使用了以下xpath,但它在运行时不起作用time://ul[@role='listbox']//li 谁能告诉我哪里错了。
注意:在这个网站上,自动提示在搜索栏中点击3次后开始显示。

这里是我的朋友。请尝试执行以下代码。您现在可以尝试用这个简单的解决方案来解决您的问题

 try {
                WebElement searchbar = driver.findElement(By.id("search-box-input"));

                searchbar.click();
                for( char character : "sea".toCharArray() )
                {
                      searchbar.sendKeys(String.valueOf(character));
                      Thread.sleep(2000);
                }

                List<WebElement> list = driver.findElements(By.xpath("//ul[@role='listbox']//li"));


                System.out.println("Total no of suggestions in search box:::====> " + list.size());

                for (int i = 0; i < list.size(); i++) {

                    System.out.println(list.get(i).getText());

                    if (list.get(i).getText().contains("Seattle WA")) {
                        /*
                         * JavascriptExecutor js = (JavascriptExecutor)driver;
                         * js.executeScript("arguments[0].click();", list.get(i));
                         */

                        list.get(i).click();

                        break;
                        }
                }

                System.out.println("out");


            } catch (Exception e) {
                // TODO Auto-generated catch block
                System.out.println(e);
                e.printStackTrace();
            }

首先等待显示自动建议下拉列表,然后比较此if list.geti.getText.containsSeattle,如果您可以随时提供DOM代码段和收到的错误,请等待,我的朋友: