Селен - неожиданное поведение, находящее элементы в каждом ряду - PullRequest
0 голосов
/ 19 марта 2019

Selenium, Chrome WebDriver, Java.

Попытка циклически бросить строки с помощью следующего кода и получить неожиданное поведение.

 List<WebElement> divs = driver.findElementsByXPath("//div[@class = \"w-dyn-items\"][contains(.//*,'2019')]/div[@class = \"w-dyn-item\"][position() < 30]")
    for (WebElement div : divs) {
        DocumentWrapper doc = new DocumentWrapper()
        try {
            //grab document stuff
            doc.title = div.findElementByXPath("//h1").getText()
            log.info("\tTitle: ${doc.title}")
            doc.dateStr = div.findElementByXPath("//div[@class=\"meta-tag\"]").getText()
            log.info("\tDate: ${doc.dateStr}")
            String google_drive_link = div.findElementByXPath("//a[@class=\"drop-link\" and contains(. ,\"PDF Agenda\")]").getAttribute('href')
            log.info("\traw Url: ${google_drive_link}")

Результаты, которые я получаю, просто повторяют одно и то же название, дату и ссылку снова и снова

2019-03-18 16:47:39 [main] INFO ::  Title: City Council & Board/Commission Meetings
2019-03-18 16:47:39 [main] INFO ::  Date: DECEMBER 23, 2019
2019-03-18 16:47:39 [main] INFO ::  Url: https://drive.google.com/uc?export=download&id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV
2019-03-18 16:47:39 [main] INFO ::  Title: City Council & Board/Commission Meetings
2019-03-18 16:47:39 [main] INFO ::  Date: DECEMBER 23, 2019
2019-03-18 16:47:39 [main] INFO ::  raw Url: https://drive.google.com/open?id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV
2019-03-18 16:47:39 [main] INFO ::  Title: City Council & Board/Commission Meetings
2019-03-18 16:47:39 [main] INFO ::  Date: DECEMBER 23, 2019
2019-03-18 16:47:39 [main] INFO ::  Url: https://drive.google.com/uc?export=download&id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV
2019-03-18 16:47:39 [main] INFO ::  Title: City Council & Board/Commission Meetings
2019-03-18 16:47:39 [main] INFO ::  Date: DECEMBER 23, 2019
2019-03-18 16:47:39 [main] INFO ::  raw Url: https://drive.google.com/open?id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV
2019-03-18 16:47:39 [main] INFO ::  Title: City Council & Board/Commission Meetings
2019-03-18 16:47:39 [main] INFO ::  Date: DECEMBER 23, 2019
2019-03-18 16:47:39 [main] INFO ::  Url: https://drive.google.com/uc?export=download&id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV

Теперь это технически не строки таблицы, а серия элементов div. Но разве они не должны работать одинаково, и если нет, то кто-нибудь может объяснить мне, почему это не должно работать?

Сайт, за которым я беру данные с https://www.cityofalhambra.org/city-meetings

1 Ответ

0 голосов
/ 19 марта 2019

Ну, я прочитал документацию Selenium на github.io и нашел это ..

enter image description here

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

Обновление * Это исправлено!

Found document: 
    Title - City Council Public Hearing
    Date - MARCH 25, 2019
    Link - https://drive.google.com/uc?export=download&id=1aAivoeNydSf761Hmih7lHWH7rLXkhuzV
Found document: 
    Title - City Council Meeting (Regular)
    Date - MARCH 11, 2019
    Link - https://drive.google.com/uc?export=download&id=1bc1MBr_M10fJOVTkQTML7LFLzz_c28HB
Found document: 
    Title - City Council (Special)
    Date - MARCH 11, 2019
    Link - https://drive.google.com/uc?export=download&id=1odnxBz6oHps5C66mHCcijx2YS_y7jgM_
Found document: 
    Title - City Council Meeting (Regular) - Business Mtg. at 5:30 p.m. & Ceremonial at 7:00 p.m.
    Date - FEBRUARY 25, 2019
    Link - https://drive.google.com/uc?export=download&id=13NBhYiRDrw2egi6iRHLgI-BlRjYIr95N
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...