2016-10-22 2 views
-1

Это мой образец html-кода. Я не могу найти xpath для типа ввода = «текст».Невозможно найти xpath, используя следующий родной брат

Примечание: Мне нужен xpath refernce только из div.

<div id="PRINTDIV"> 
    <table id="one"></table> 
    <table id="two"></table> 
</div> 

<table> 
    <tr> 
     <td> 
      <input type="button" value="post value" > 
     </td> 
     <td> 
      <input type="text" > 
     </td> 
    </tr> 
</table> 

Я использую ниже xpath. Но не работает.

/* [@ ид = 'PRINTDIV']/следующий-родственный :: стол/тр/тд [2]

Пожалуйста, поправьте меня.

+0

Если вы предоставите полный XML, то многие люди смогут сразу дать вам решение. Без этого теперь все должны угадать ... –

ответ

0

Вам не хватает косой черты в начале и вам нужно добавить дополнительную косую черту перед tr. В контрольном элементе я вижу дополнительный тег тета, хотя я понятия не имею, почему так оно и есть.

"//div[@id='PRINTDIV']/following-sibling::table//tr/td/input[@type='text']" 

Или попробуйте CSS

"div[id='PRINTDIV'] + table tr > td > input[type='text']" 

Почему бы не использовать идентификатор таблицы, чтобы получить к нему напрямую? Это динамически сгенерированный идентификатор?

+0

Спасибо за ваш ответ. Это не работает для меня - как xpath, так и CSS. Нет идентификатора для таблицы ниже div. Теперь отредактировал вопрос. –

+0

Я использую точно обновленный html в chrome, и он работает для обоих. Являются ли div и таблица внутри iframe? – Grasshopper

+0

Спасибо за ваш ответ. Я использую IE 11, и он терпит неудачу. Только что проверено в хроме. Он отлично работает и для меня. Я использую ниже подробные сведения о конфигурации для запуска IE 11. System.setProperty («webdriver.ie.driver», «D: \ SELENIUM \\ SEL_PRACTICE \\ driver \\ IEDriverServer.exe»); \t \t DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); \t \t caps.setCapability (InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); \t \t водитель = новый InternetExplorerDriver (колпачки); –

0

Поскольку div не является непосредственным дочерним элементом корневого узла, вы не можете получить к нему доступ через один /. Вам нужно будет предоставить //, чтобы разрешить селен-анализ и найти узел в DOM.

Следовательно, // div должен иметь возможность доступа к элементу.

+0

Спасибо. Не могли бы вы помочь мне с xpath, используя то же самое в IE 11, где он не работает. –