0

Я работаю над проектом с помощью java и selenium webdriver 2.44, нам нужен самый близкий элемент текста. Например, у меня есть текст электронной почты на странице, и мне нужен ближайший элемент, который является текстовым полем. Я выполнил приведенный ниже запрос xpath на facebook.com. Однако он находит номера типов ввода, которые являются электронной почтой и текстом. Нам не нужен jQuery для запуска, поскольку мы используем web-редактор selenium.xpath запросы, чтобы найти ближайший элемент

.//*[contains(text(),'Email')]/following::input[@type='email' or @type='text'] 

Может ли кто-нибудь предоставить мне запрос xpath, чтобы найти ближайший элемент на странице. Или учебный сайт, где я могу научиться запрашивать. enter image description here

+0

http://stackoverflow.com/questions/28322015/what-will-be-the-best-way-to-select-drop-down-ite m-in-dojo-based-html-in-java-w/28324057 # 28324057 – SkorpEN

+0

объясните 'нам нужен самый близкий элемент текста'. Вы ищете конкретную? – Saifur

+0

да, нам нужно текстовое поле, которое отображается под текстом электронной почты или телефона, это ближайшее текстовое поле. Текст будет передан в параметре и будет искать на странице и будет возвращать ближайшее текстовое поле для работы. –

ответ

1

Не идеальное решение, хотя в сценарии facebook и может найти первый элемент как:

(.//*[contains(text(),'Email')]/following::input[@type='email' or @type='text'])[1] 

Другое дело, чтобы добавить, если вы получаете несколько элементов для вашего запроса вы можете использовать:

List<WebElement> txtList = new ArrayList<WebElement>(); 
txtList = driver.findElements(By.xpath(".//*[contains(text(),'Email')]/following::input[@type='email' or @type='text']")); 

и использовать txtList.get(0).sendKeys("abcd");

+0

Привет Вивек, спасибо за ваш ответ. Я выполнил запрос, и он возвращает два текста: один, который отображается под текстом электронной почты или телефона, а другой отображается из раздела регистрации. Ну, это уменьшило количество текстовых полей, но нам потребовалось только одно текстовое поле, которое дается ниже текста электронной почты или телефона. –

+0

Не так ли? В firepath его показывается только «1 соответствующий узел». Не могли бы вы перепроверить его в пожаре? –

+0

Это работает спасибо, также вы можете предложить мне учебный сайт, где я могу узнать, как запросить xpath –

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