Метод Selenium click () на сайте angular. js - PullRequest
0 голосов
/ 30 мая 2020

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

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

TIMEOUT = 5

driver = webdriver.Firefox()
driver.set_page_load_timeout(TIMEOUT)
url = 'https://n.rivals.com/search#?formValues=%7B%22sport%22:%22Football%22,%22recruit_year%22:2021,%22offer_and_visit_type%22:%5B%22Offer%22%5D,%22prospect_profiles.prospect_colleges.offer%22:true,%22page_number%22:1,%22page_size%22:50%7D'

try:
    driver.get(url)
except TimeoutException:
    pass

search_button = driver.find_element_by_xpath('//*[@id="articles"]/div/div[2]/div/div/div[1]/form/div[2]/div[5]/button')
search_button.click();
#below is where I tried, but could not get to click
first_athlete = driver.find_element_by_xpath('//*[@id="content_"]/td[1]/div[2]/a')
first_athlete.click();

Ответы [ 2 ]

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

Если вы хотите найти всех спортсменов и у вас есть имена спортсменов, вы также можете использовать селектор CSS.

athelete = driver.find_elements_by_css_selector(`#content_ > td > div > a[href *="donovan-jackson"]);
athelete.click();

Этот код предоставит вам уникальный веб-элемент для каждому игроку.

Спасибо

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

Работает, если вы удалите последний /a в xpath:

first_athlete = driver.find_element_by_xpath('//*[@id="content_"]/td[1]/div[2]')
first_athlete.click()
...