2014-01-26 5 views
0

Я пытаюсь создать метод ожидания ajax в Java с помощью Selenium для получения как можно большего числа результатов, определенных конфигурацией.Неправильный синтаксис Selenium xpath

Вот мой метод:

/** 
    * 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: The given selector //div[@id='pageTv']/div[@id='pageTvScroller')]/div[@class='boxInner']/ul/li is either invalid or does not result in a WebElement. The following error occurred: InvalidSelectorError: Unable to locate an element with the xpath expression //div[@id='pageTv']/div[@id='pageTvScroller')]/div[@class='boxInner']/ul/li because of the following error: [Exception... "The expression is not a legal expression." code: "12" nsresult: "0x805b0033 (SyntaxError)" location: ""] Command duration or timeout: 20 milliseconds

Должен ли я wory о выражении XPath не является snytax correct, или Selenium не может найти этот WebElement? Это исключение является неоднозначным для меня ....

ответ

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 
+0

правде говоря ... Я смотрел на него более 5 раз, и все же это не лопнуло глаз ...;) THunk you ... – Zec

+0

рад, что это помогло :) – Amith

Смежные вопросы