Я хотел бы использовать getText()
для одного XPath, нужен текст, что есть.
//интервал (содержит (@стиль 'дисплей: нет'))
XPath работает в Firebug, я пробовал getText
, getAttribute
, пока не повезло
Немного сложно сказать без точного HTML, который вы не указали в своем вопросе...
Для начала вам нужно изменить это:
"//span(contains(@style,'display:none'))"
К этому:
"//span[contains(@style,'display:none')]"
ОБНОВИТЬ:
В качестве альтернативы, поскольку элемент span
не отображается, вы можете сделать это с помощью:
String innerHTML = elem.getAttribute("innerHTML");
Где elem
является родительским узлом элемента span
.
Затем, чтобы получить фактический текст, вам нужно проанализировать строку innerHTML
.
Поскольку элемент невидим (он имеет display:none
), Selenium не может взаимодействовать с ним. Вам нужно отдать свой драйвер JavascriptExecutor
, а затем выполнить следующий javascript:
$x("//span(contains(@style,'display:none'))")[0].text
[0]
возвращает 1-й элемент, возвращаемый xpath.
Это вернет внутренний текст элемента.
$x("//span[contains(@style,'display:none')]").text
$x
имеет какое-либо отношение к jQuery, это специфично для Chrome и Firefox (с Firebug)