Нажатие на ссылки с идентификаторами переменных в Python / Selenium - PullRequest
0 голосов
/ 23 сентября 2019

Я перебираю сайт системы зачисления в университет.Каждая страница ссылается на множество других страниц.Каждая ссылка имеет идентификатор SEC_SHORT_TITLE_x, где x - целое число от 1 до 20.Однажды на каждой из этих страниц я хотел бы почистить несколько фрагментов данных.Сейчас я просто пытаюсь очистить название раздела.Будет обрабатывать логику возврата страницы и перехода по следующей ссылке после этого.

DevTools, показывающий xPath: enter image description here

for y in range(1):
    for j in range(1,2):
        if browser.find_elements_by_xpath("//a[@id='SEC_SHORT_TITLE_" + str(j) + "']"):
            #outputstring = ''
            browser.find_elements_by_xpath("//a[@id='SEC_SHORT_TITLE_" + str(j) + "']").click()
            time.sleep(10)
            section = browser.find_elements_by_xpath("//p[@id='VAR2']")
            print(section)

Скрипт переходит ксоответствующая страница, которая содержит все ссылки, но не может нажать на первую ссылку, как следует.

[7756:2296:0923/141749.015:ERROR:ssl_client_socket_impl.cc(941)] handshake failed; returned -1, SSL error code 1, net_error -100

1 Ответ

3 голосов
/ 23 сентября 2019

Исходя из предоставленного вами сообщения об ошибке (SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//a[@id='SEC_SHORT_TITLE_1]' is not a valid XPath expression. (Session info: chrome=77.0.3865.90)), похоже, что ваш синтаксис XPath неверен.Вам необходимо добавить закрывающую отметку в квадратных скобках.

Изменить //a[@id='SEC_SHORT_TITLE_1]

На //a[@id='SEC_SHORT_TITLE_1']

Обратите внимание, как я добавил одну отметку после 'SEC_SHORT_TITLE_1'.

В зависимости от примера кода вам необходимо обновить эту строку, изменив:

browser.find_elements_by_xpath("//a[@id='SEC_SHORT_TITLE_" + str(j) + "]"):

на:

browser.find_elements_by_xpath("//a[@id='SEC_SHORT_TITLE_" + str(j) + "']"):

Я добавил одну '' отметку перед закрывающей квадратной скобкой, чтобы исправить синтаксис XPath.

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