Как определить правильный xpath в тегах <span>в большем <div> - PullRequest
0 голосов
/ 01 июля 2019

Текущий проект, над которым я работаю, связан с командой "find_elements_by_xpath" из Selenium.Все шло хорошо, однако я не смог определить правильный xpath для одной области, которая находится между тегами span внутри тега div.Вот элемент, который я пытаюсь получить:

<div class="agencyAddress">
                    <span ng-show="x.agencyAddress1 != ' '" class="ng-binding">2115 W CHICAGO AVE </span>
                    <br>
                    <span ng-show="x.agencyCity != ' '" class="ng-binding">CHICAGO                       , </span>
                    <span ng-show="x.agencyState != ' '" class="ng-binding">IL</span>
this one here -->   <span ng-show="x.agencyZip != ' '" class="ng-binding">60622-7976</span>
                    <br>
                </div>

Каждый раз, когда я пробую другой xpath, я получаю код выхода «IndexError: list index out of range».Я пробовал различные xpath, от копирования и вставки xpath, когда я щелкаю правой кнопкой мыши в окне проверки, изменяя раздел [@id] в xpath и т. Д. Моя цель состоит в том, чтобы иметь возможность очистить каждую область, которая имеетпочтовый индекс на странице, отсюда и команда "find_elements_by_xpath", поэтому я получаю этот конкретный код выхода.

Я очень ценю любые идеи и помощь.Спасибо!

(Для справки вот код Python, который у меня есть, и ссылка на веб-сайт, который я собираю:

Zip_Code = driver.find_elements_by_xpath('//* [@id="appSection"]/div[2]/div/div[3]/div[1]/div/div/div[1]/div/div[1]/div[4]/div[1]/span[4]')
Zip1 = Zip_Code[0].text
Zip2 = Zip_Code[1].text
Zip3 = Zip_Code[2].text
Zip4 = Zip_Code[3].text
Zip5 = Zip_Code[4].text
Zip6 = Zip_Code[5].text
Zip7 = Zip_Code[6].text
Zip8 = Zip_Code[7].text
Zip9 = Zip_Code[8].text
Zip10 = Zip_Code[9].text

Ссылка: https://insurance -agent.safeco.com/find-an-insurance-agency/app/search-results-locationSearch=60612)

1 Ответ

1 голос
/ 01 июля 2019

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

//span[@ng-show='x.agencyZip != ' '']
or 
//span[contains(@ng-show,'agencyZip')]
...