2017-02-16 8 views
0

Я пытаюсь автоматизировать ввод и выбор окна поиска. Сначала я ввожу строку поиска длиной в два символа в поле ввода, когда она запрашивает список вероятных результатов поиска, мне нужно прочитать каждый элемент и найти конкретный текст (частичный) и щелкнуть тот, который я хочу. Затем элемент будет выбран в качестве строки поиска и помещен в исходное поле ввода. Затем я нажимаю другое окно поиска, чтобы начать поиск. Это больше похоже на наш поиск в Google.xpath для ввода поля поиска для автоматического выбора элементов, как в google

Когда я использовал плагин Firebug внутри Firefox, я вижу, что этот код подсвечивается. Конечно, это всего лишь две вещи в настоящее время здесь, но может быть намного больше до 10.

<div class="ac_results" style="display: block; position: absolute; width: 400px; top: 135px; left: 520px;"> 
 
    <ul> 
 
    <li class="ac_even ac_over"> 
 
     EURIBOR 3 MONTH FUT (
 
     <strong>EB</strong>) 
 
    </li> 
 
    <li class="ac_odd"> 
 
     EUR/GBP FUTURES (
 
     <strong>EB</strong> P) 
 
    </li> 
 
    </ul>

Мне нужно, чтобы иметь возможность итерирования побудившие элементы списка, знать их текст, выберите с соответствующим текстом и нажмите на него. Ценю вашу помощь.

Цените свою помощь

+2

Показать код вы уже пробовали и описать проблемы вы столкнулись с вашим кодом – Andersson

+0

Тот, который я действительно использовал в своем коде, приведен ниже. Вы можете прокомментировать качество решения. "// div [начинается с (@ class, 'ac_results') и содержит (., '(EB)')]" – PraNuta

ответ

0

Используйте этот Xpath. Вы получите список результатов поиска. Создайте список веб-элементов и выполните итерацию по массиву для проверки.

//div[class="ac_results"]//ul//li

0

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

driver.findElement(By.xpath("//div[@class='ac_results']/ul/li[contains(text(),'" + searchtext + "')]")).click();

где searchtext либо EURIBOR 3 МЕСЯЦА FUT или EUR/GBP FUTURES

XPath будет: //div[@class='ac_results']/ul/li[contains(text(),'EURIBOR 3 MONTH FUT')]

+0

Удивительный! Работал как шарм. Теперь мне нужно понять логику фрагмента кода. Обучение! Обучение !! – PraNuta

+0

xpath: ищет любой 'div' внутри html (двойная слэш означает, что мы не начинаем с корня) с классом' ac_results'..так ищите дочерний 'ul', у которого есть дочерний' li', который имеет текст «EURIBOR 3 MONTH FUT» – becixb

+0

знак как принятый ответ? – becixb