Функция кнопки перегрузки в Selenium - PullRequest
0 голосов
/ 31 января 2019

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

У меня есть три решения -

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

  2. Переопределение функции кнопки в исходном коде.

  3. Создание новой кнопкидля всех страниц, которые будут вызывать функцию только в том случае, если фактическая кнопка также присутствует на странице (в противном случае мы покажем, что «Это действие не может быть выполнено для этой страницы»)

Iдумаю, 2 и 3 было бы лучше, если бы они могли быть сделаны, но я не мог получить много ресурсов на Google.Любая ссылка / ответ о том, как это можно сделать, будет очень полезна.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Шаг 2 можно выполнить с помощью расширения chrome / firefox.Это невозможно сделать с помощью Selenium, потому что это требует редактирования DOM.Эта ссылка может быть полезна.

0 голосов
/ 01 февраля 2019

Самый простой способ сделать это, вероятно, запустить веб-сервер Python на локальной машине, который запускает ваш код Selenium при получении определенного HTTP-запроса.Вы можете написать свой сервер следующим образом, используя Flask , например:

from flask import Flask, abort

app = Flask(__name__)

@app.route('/dosomestuff', methods=['POST'])
def display():
    # Check that the request is coming from t
    if request.remote_addr != '127.0.0.1':
        abort(403)

    do_some_stuff()  # Call whatever code you want to run here

    return "Done"

if __name__ == '__main__':
    app.run()

(Использование Flask здесь, вероятно, излишне, и вы можете сделать это без библиотеки, но Flask - этометод, с которым я наиболее знаком.)

Затем на своей веб-странице вы просто настроите кнопку для отправки соответствующего запроса:

<form action="http://localhost:8080/dosomestuff" method="post">
  <input type="submit" value="Do some stuff">
</form>

Затем, пока ваш локальныйсервер работает в то время, нажатие на кнопку должно вызвать ваш код Python.

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