2013-11-21 3 views
0

Я использую Xpathchecker FF плагин, чтобы получить выражение XPath, но когда я запускаю этот код:Invalid исключение Selector с помощью Xpath (селеном веб-драйвера)

private void srch() throws MalformedURLException, IOException 

{ 

    driver.get(TestURL); 
    WebElement input1 = driver.findElement(By.id("login_form_user_input")); 
    input1.sendKeys("guest");    
    WebElement input2 = driver.findElement(By.id("login_form_password_input")); 
    input2.sendKeys("guest"); 
    WebElement btn = driver.findElement(By.id("login_form_signin_button")); 
    btn.click(); 
    WebElement w1 = driver.findElement(By.id("header_search_text_field")); 
    w1.sendKeys("tsk"); 
    //WebElement resulttable = driver.findElement(By.id("search_results_table")); 
//System.out.println(resulttable.getSize()); 
    List <WebElement> rows = driver.findElements(By.xpath("id('search_results_table')/x:tbody/x:tr")); 
     System.out.println(rows.size()); 


} 

Я получаю следующее сообщение об ошибке:

Данный селектор id ('search_results_table')/x: tbody/x: tr либо недействителен, либо не приводит к появлению WebElement. Произошла следующая ошибка: InvalidSelectorError: Не удалось найти элемент с идентификатором выражения xpath ('search_results_table')/x: tbody/x: tr из-за следующей ошибки: [Исключение ...] Была сделана попытка создать или изменить объект таким образом, который неверен в отношении пространств имен "code:" 14 "nsresult:" 0x8053000e (NamespaceError) "location:" file: /// C:/Users/orsyp/AppData/Local/Temp/anonymous8101865731711582627webdriver -profile/extensions/[email protected]/components/driver_component.js Строка: 5916 "] Продолжительность или таймаут команды: 109 миллисекунд Для получения документации по этой ошибке, пожалуйста, посетите: http://seleniumhq.org/exceptions/invalid_selector_exception.html Информация о сборке: версия: '2.35.0 ', редакция:' c916b9d ', время:' 2013-08-12 15:42:01 ' Системная информация: os.name:' Windows 7 ', os.arch:' amd64 ', os.version:' 6.1 ' , java.ver Сьон: '1.7.0_40' Session ID: 9cbc470a-c211-46ce-8bb1-ccdb9c66ff1e

А вот мой HTML-код, как вы можете видеть, что это динамическая таблица:

<table id="search_results_table" class="table table-striped table-hover table-condensed table-bordered"> 
    <tbody> 
     <tr class="ng-scope" ng-repeat="object in objects"> 
      <td> 
      <a href="#/en/object?company=WAR001&area=X&mu=BIST_CE691&name=TSK(BEN701JU50)(000)"> 
      <p style="font-size:11px"> 
     </td> 
    </tr> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    <tr class="ng-scope" ng-repeat="object in objects"> 
    </tbody> 

+0

Просьба представить HTML-код, так что я буду в состоянии помочь вам с XPath. Ваш xpath недействителен. – Ievgen

+0

Спасибо, HTML-код добавлен – Ziwdigforbugs

+0

Почему вы задали несколько вопросов по этому поводу? Это было объяснено вам раньше, это не допустимый XPath в любом смысле. Вы также предоставляете нам старые файлы журналов: '' 2013-08-12 15: 42: 01' – Arran

ответ

1

Предполагая, что вы хотите, чтобы все строки в TBODY, то XPath должно быть:

//table[@id='search_results_table']/tbody/tr