Selenium не может автоматизировать нажатие на веб-элемент - PullRequest
0 голосов
/ 01 мая 2020

Я должен начать с того, что я не веб-разработчик, но я использую Selenium с Python в течение нескольких недель и думаю, что получил базовые знания.

То, что у меня есть, это страница с еженедельным календарем. Изображение выглядит следующим образом:

Calendar

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

Это выглядит следующим образом:

Register

Как видите, календарь все еще появляется на заднем плане. То есть элемент, на который мы нажимаем, не переносит нас на новую страницу, но, я полагаю, запускает какой-то метод, который показывает регистр и заполняет его данными.

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

Итак, что я сделал? Когда я делал это раньше, я искал в сети html соответствующую часть, а затем перехватил xPath до нужного мне элемента. Но здесь я не могу этого сделать. Почему бы нет? Ну, во-первых, я просто не могу найти этот элемент!

Посмотрите на этот крупный план первого столбца:

enter image description here

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

Так что я не смог получить элемент вообще.

Я думал, что смогу просто узнать, куда мы пошли после того, как я нажал кнопку, но когда я получил адрес ссылки, он просто сказал, что это та же страница без различий.

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

Ну, вот на что надеяться.

Редактировать: я должен добавить, что есть некоторые элементы JavaScript (скрипт типа тега, type = 'text / javascript'). Я предполагаю, что ответ где-то есть, но там много Javascript, и я не умею его читать. Мне сложно сказать, что делает сценарий. Если бы я мог хотя бы выяснить, какой сценарий запускается, когда я нажимаю на элемент, то я думаю, что я бы на что-то, но я понятия не имею. Даже это помогло бы мне.

Ответы [ 2 ]

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

Трудно сказать без HTML. Может быть, попробуйте Katalon Recorder (расширение chrome) и посмотрите, сможет ли он обнаружить xpath для вас? Также может потребоваться использовать какой-то javascript для вызова метода для элемента

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

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

Попытка посмотреть по этой ссылке. Selenium Scroll внутри всплывающего окна div

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