Как мне решить, что именно xpath должен найти и открыть все профили на веб-странице, используя Selenium и Python? - PullRequest
0 голосов
/ 08 ноября 2018

Я новичок в программировании и пытаюсь создать тестовое программное обеспечение для автоматизации поиска данных с веб-сайта. Однако мне трудно определить xpath, чтобы можно было найти и щелкнуть все отдельные профили.

'/html/body/div[1]/div[2]/div/div[3]/div/main/table[2]/tbody/tr/td/div/table/tbody/**tr[2]/td[1]**/div/table/tbody/tr/td[1]/a'
'/html/body/div[1]/div[2]/div/div[3]/div/main/table[2]/tbody/tr/td/div/table/tbody/**tr[2]/td[2]**/div/table/tbody/tr/td[1]/a'
'/html/body/div[1]/div[2]/div/div[3]/div/main/table[2]/tbody/tr/td/div/table/tbody/**tr[3]/td[1]**/div/table/tbody/tr/td[1]/a'

Я нахожу это трудным, потому что переменные находятся в середине xpath и не знают, как писать profileCount и цикл for. Извините, если мой вопрос звучит глупо, я прочитал все ресурсы, которые мог придумать, но не нашел решения. Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 08 ноября 2018

скажи мне, если я не прав

Если я правильно понял, вы хотите сделать цикл, который будет проверять все профили на веб-сайте .... Если это та же проблема, что и у меня в proxy_gatherer, то это решение может вам помочь:

for x in range(2,34):
    try:
        u1 = browser.find_element_by_xpath('//*[@id="tbl_proxy_list"]/tbody[1]/tr[' + str(x) + ']/td[1]/abbr').text
        except:
            print('proxy out of range')

в вашем случае (на основании всей предоставленной вами информации):

for x in range(2,last_profile_id):
    for xx in range(1,2):
        browser.find_element_by_xpath('/html/body/div[1]/div[2]/div/div[3]/div/main/table[2]/tbody/tr/td/div/table/tbody/**tr[{}]/td[{}]**/div/table/tbody/tr/td[1]/a'.format(x,xx))

объяснение того, что я сделал: на основании предоставленных вами xpath я проанализировал, какие части меняются ... вот оно:

// tr [2] / td [1] // -> здесь написано жирным шрифтом:

'/ HTML / тело / DIV [1] / дел [2] / дел / дел [3] / DIV / основная / таблица [2] / TBODY / TR / TD / DIV / стол / TBODY / тр [2] / тд [1] / дела / таблица / TBODY / тр / тд [1] / а '

Я надеюсь, что помог вам :), если нет, и я полностью не понял, что вы спросили, пожалуйста, дайте мне знать ^^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...