Нажатие кнопки Javascript не работает в веб-драйвере селена - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь автоматизировать нажатие кнопки javscript с помощью скрипта python и веб-драйвера, однако, как бы я ни пытался сослаться на элемент, он, похоже, не активирует javscript.Вот выдержка из веб-сайта, на котором я пытаюсь нажать кнопку:

<li>
<a href="javascript:;" data-blogid="19079" id="picture-trigger">
<i class="glyphicon glyphicon-picture light-red"></i >
<span> Picture </span >
</a >
</li >

Я попытался выбрать с помощью CSS-селектора, с помощью XPATH, и в то время как я вижу выбранный элемент (пунктирная линия вокруг него при запуске), Ничего не произошло.

Я также пробовал оба .click () и .submit (), но ни один из них не работает.Вот моя последняя попытка:

element = mydriver.find_element_by_id("picture-trigger")
element.click()

Я думаю, возможно, проблема в javascript :;не вызывается при вызове из веб-драйвера так же, как при нажатии на него интерактивного пользователя, но я не знаю, как еще его автоматизировать, нажав на него.

Кто-нибудь с большим опытом работы с веб-драйвером знает, почему это не работает или как я могу заставить это работать?

Спасибо, Брэд

Вот что я вижу, когда запускаюкод: Selected Element

Вот как это выглядит, когда я вручную нажимаю кнопку:

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Я думаю, что проблема заключается в том, что сайт использует jquery.Я смог обойти это, используя следующее:

time.sleep(3);
mydriver.execute_script("$('.light-red').click();")

time.sleep(3);
mydriver.execute_script("$('.uploadbutton').click();")

Возможно, есть лучший способ, чем использовать time.sleep, но я потратил так много времени, пытаясь заставить div показать его, что его достаточно хорошона данный момент.

Надеюсь, это поможет кому-то еще в подобной ситуации.Спасибо всем за помощь.

0 голосов
/ 14 декабря 2018

Вот как я могу найти способ щелкнуть элемент с помощью XPath:

  1. Перейдите на целевую страницу, где расположена кнопка (пробовал с FireFox).
  2. Справанажмите кнопку и выберите «Проверить элементы».
  3. Щелкните правой кнопкой мыши HTML-код кнопки и в разделе «Копировать» выберите XPath.
  4. Теперь XPath скопирован в буфер обмена.

Теперь вам просто нужно позвонить по этой линии:

document.getElementByXPath("PASTE THE XPATH HERE").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...