Как перейти по ссылке на страницу в селене python - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь получить данные на этой странице . Как видите, здесь 5 страниц, и я хочу щелкнуть по этим ссылкам одну за другой, а затем получить данные таблицы. Но я не могу перейти на следующую страницу. Мои коды указаны ниже.

page_counts = len(driver.find_elements_by_xpath("//tr[@class='pagerRow']/td/table/tbody/tr/td"))
next_page_no = 2
while True:
    ... 
    try:
       element = driver.find_element_by_xpath("//tr[@class='pagerRow']/td/table/tbody/tr/td[" + str(next_page_no) + "]/a")
       driver.execute_script("arguments[0].click();", element)
       next_page_no += 1
       time.sleep(2)
    except:
       break

Как я могу щелкнуть ссылку каждой страницы? Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Демо

import time

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get('https://eproperty.casey.vic.gov.au/T1PRProd/WebApps/eProperty/P1/eTrack/eTrackApplicationSearchResults.aspx?Field=S&Period=TM&r=P1.WEBGUEST&f=%24P1.ETR.SEARCH.STM')

current_page = 1
while True:
    pager = driver.find_element_by_css_selector('tr.pagerRow')
    links = pager.find_elements_by_xpath(f"//a[text()='{current_page+1}']")
    if not links:
        break

    a = links[0]
    ActionChains(driver).move_to_element(a).perform()
    a.click()
    time.sleep(5)
    current_page += 1

driver.quit()


0 голосов
/ 27 мая 2020

Ну, я не тестировал это, но после этой строки: element = driver.find_element_by_xpath("//tr[@class='pagerRow']/td/table/tbody/tr/td[" + str(next_page_no) + "]/a")

вы сможете использовать метод element.click(), если элемент, который вы нашли, является интерактивным.

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