Обновление :
Ответ выложен здесь должен работать на вышеуказанный вопрос
Оригинал
Я искал тот же ответ. Пока я не думаю, что есть выход. Я долго искал ответ на этот вопрос.
Полагаю, вам придется выяснить XPath элемента, в котором вы хотите найти подэлемент. Как только вы это сделаете, вы добавите это к шрифту XPath, который вы собираетесь использовать, чтобы найти подэлемент. Не звучит элегантно. Завтра попробую и посмотрю, как получится.
Здесь в github обсуждается, как откатить XPath от существующего элемента.
https://groups.google.com/forum/#!topic/selenium-users/kvGLSzl_GQE
protected String getXPath() {
String jscript = "function getPathTo(node) {" +
" var stack = [];" +
" while(node.parentNode !== null) {" +
" stack.unshift(node.tagName);" +
" node = node.parentNode;" +
" }" +
" return stack.join('/');" +
"}" +
"return getPathTo(arguments[0]);";
return (String) driver.executeScript(jscript, webElement);
}
Внимание! :
из того, что я понимаю, вы не должны помещать element.FindElemen () в wait.Until (). Сначала выполняется внутренний код (FindElement), что не соответствует цели wait.Until () ... поэтому код, структурированный так, как описано в этом предупреждении, не будет ждать.
PS: найденное мной решение не сработало. Это дало мне XPath, но XPath не для элемента, с которого я получил Xpath.