Drag_and_drop_helper.js не работает (python, Selenium) - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь заставить Drag_And_drop_help_js работать над моим сценарием селена, но мне не повезло

Я пытался использовать различные комбинации js-кода, чтобы эта работа все еще не работала

    # coding = utf-8
from selenium import webdriver
import os
import time
X = 1
browser = webdriver.Chrome('/Users/admin/Downloads/chromedriver')
jquery_url = "/Users/admin/Library/Preferences/PyCharmCE2018.3/scratches/jquery-1.11.2.min.js"

time.sleep(3)
# load jQuery helper

with open("/Users/admin/Library/Preferences/PyCharmCE2018.3/scratches/jquery_load_helper.js") as f:
    load_jquery_js = f.read()

# load drag and drop helper
with open("/Users/admin/Library/Preferences/PyCharmCE2018.3/scratches/drag_and_drop_helper.js") as f:
    drag_and_drop_js = f.read()

# load jQuery
browser.execute_async_script(load_jquery_js, jquery_url)

time.sleep(3)
# perform drag&drop

browser.execute_script(drag_and_drop_js + "$('img._1SHoi3TpKUXlEGqlgZ2vd2._3rlZNaFpVhbk2o4Z0FDo6s._1xHwr15CE9cPMNGOn0zEj').simulateDragDrop({ dropTarget: 'div._31Rs25Go5jOLli-OJEzoMA._30rwedNTbMR7KpB_wNp3RD'});")

Это ошибка, которую я получаю:

selenium.common.exceptions.JavascriptException: Message: javascript error: jQuery is not defined 

Я хочу переместить одно изображение в другое место.с помощью перетаскивания Помощь будет высоко ценится

Ответы [ 2 ]

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

Есть более простой способ загрузить их:

for script in ['/path/to/jquery.js', '/path/to/drag_and_drop_helper.js']:
  with open(script, errors='ignore') as f:
    driver.execute_script(f.read())

# this last line I'm not sure if it will work as expected though
browser.execute_script("$('img._1SHoi3TpKUXlEGqlgZ2vd2._3rlZNaFpVhbk2o4Z0FDo6s._1xHwr15CE9cPMNGOn0zEj').simulateDragDrop({ dropTarget: 'div._31Rs25Go5jOLli-OJEzoMA._30rwedNTbMR7KpB_wNp3RD'});")
0 голосов
/ 09 апреля 2019

Вы получаете сообщение об ошибке JQuery is not defined, потому что DragAndDropHelper зависит от JQuery, но вы загружаете его перед загрузкой JQuery.

from selenium import webdriver
import os
import time
X = 1
browser = webdriver.Chrome('/Users/admin/Downloads/chromedriver')
jquery_url = "/Users/admin/Library/Preferences/PyCharmCE2018.3/scratches/jquery-1.11.2.min.js"

time.sleep(3)

# load jQuery helper
with open("/Users/admin/Library/Preferences/PyCharmCE2018.3/scratches/jquery_load_helper.js") as f:
    load_jquery_js = f.read()   

# load jQuery BEFORE libraries
browser.execute_async_script(load_jquery_js, jquery_url) 

# load drag and drop helper
with open("/Users/admin/Library/Preferences/PyCharmCE2018.3/scratches/drag_and_drop_helper.js") as f:
    drag_and_drop_js = f.read()

time.sleep(3)
# perform drag&drop

browser.execute_script(drag_and_drop_js + "$('img._1SHoi3TpKUXlEGqlgZ2vd2._3rlZNaFpVhbk2o4Z0FDo6s._1xHwr15CE9cPMNGOn0zEj').simulateDragDrop({ dropTarget: 'div._31Rs25Go5jOLli-OJEzoMA._30rwedNTbMR7KpB_wNp3RD'});")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...