如何编写Xpath。

时间:2014-02-18 06:11:22

标签: xpath selenium-webdriver

我正在使用此网站 - https://www.blueshieldca.com/home - 并点击“查找提供商”。在Located Near输入中我输入'los',我必须从建议的选项中选择第二个值。

任何人都可以告诉我如何为它编写xpath吗?

4 个答案:

答案 0 :(得分:1)

使用此// li [@class =' ui-menu-item'] [@ role =' menuitem'] [2]

答案 1 :(得分:1)

一种简单的方法是明确等待。

new WebDriverWait(driver,30).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//li[@class='ui-menu-item'][2]"))).click();

答案 2 :(得分:0)

您的网站无法使用。请发布HTML并尝试使用:

//Select option last activity as Completed
            WebElement select = driver.findElement(By.name("status"));
            List<WebElement> options = select.findElements(By.tagName("option"));
            for(WebElement option : options){
                if(option.getText().equals("Confirmed")) {
                    option.click();
                    break;
                }
            }

答案 3 :(得分:0)

我的大部分都在工作。我在这里遇到的问题是它没有从下拉列表中选择第二个值。

        IWebDriver driver = new FirefoxDriver();
        WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
        driver.Navigate().GoToUrl("https://www.blueshieldca.com/home");
        driver.Manage().Window.Maximize();
            driver.FindElement(By.XPath("//div[contains(@class,'primary_navigation_area')]//li[4]//a[contains(@onclick,'dcsMultiTrack')]")).Click();
        IWebElement entercity = driver.FindElement(By.Id("location"));
        entercity.Click();
        entercity.SendKeys("los");
        wait.Until((d)=>driver.FindElement(By.XPath("//li[@class='ui-menu-item'][@role='menuitem'][2]")));
        driver.FindElement(By.XPath("//li[@class='ui-menu-item'][@role='menuitem'][2]")).Click();
        driver.FindElement(By.ClassName("findNow")).Click();