Selenium xpath语法不正确

时间:2014-01-26 13:43:10

标签: java selenium xpath selenium-webdriver

我正在尝试使用Selenium在Java中创建ajax等待方法,以获取配置定义的结果。

这是我的方法:

    /**
     * Wait for WAIT seconds for AJAX data to be loaded.
     * @throws Exception - if thread is interrupted
     */
    public List<WebElement> waitAjaxLoad(By by) throws Exception{
        int ajaxResultsWait = Integer.parseInt(P.getProperty("ajax.results.wait"));
        List<WebElement> resultsLoaded = null;

        do{
            resultsLoaded = driver.findElements(by);
        }while(resultsLoaded.size() < ajaxResultsWait);
        return resultsLoaded;
    }

这是我的电话:

List<WebElement> videoElements = waitAjaxLoad(By.xpath("//div[@id='pageTv']/div[@id='pageTvScroller')]/div[@class='boxInner']/ul/li"));

我得到了这个例外:

  

org.openqa.selenium.InvalidSelectorException:给定的选择器   // DIV [@ ID = 'pageTv'] /格[@ ID = 'pageTvScroller')] /格[@类= 'boxInner'] / UL /立   无效或不会导致WebElement。下列   发生错误:InvalidSelectorError:无法找到元素   xpath表达式   // DIV [@ ID = 'pageTv'] /格[@ ID = 'pageTvScroller')] /格[@类= 'boxInner'] / UL /立   因为以下错误:[例外......“表达式不是   法律表达。“code:”12“nsresult:”0x805b0033(SyntaxError)“   location:“”]命令持续时间或超时:20毫秒

我是否应该了解XPath表达式不是snytax正确,或者Selenium无法找到该WebElement?这个例外对我来说是模棱两可的......

1 个答案:

答案 0 :(得分:0)

div[@id='pageTvScroller')]中添加了一个简单的输入错误,不需要的圆括号,所以请替换

 //div[@id='pageTv']/div[@id='pageTvScroller')]/div[@class='boxInner']/ul/li

//div[@id='pageTv']/div[@id='pageTvScroller']/div[@class='boxInner']/ul/li