Запуск javascript в Selenium с помощью Python
Я совершенно новичок в селене. Я хочу выполнить фрагмент javascript в следующем коде (как прокомментировано в коде), но не могу этого сделать. Пожалуйста помочь.
from selenium import webdriver
import selenium
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
patch = raw_input("Enter patch numbern")
rel = raw_input("Enter releasen")
plat = raw_input("Enter portn")
browser = webdriver.Firefox()
browser.get("xxxxxxxxxxxxxxxxx")
pdtfamily = browser.find_element_by_id("prodFamilyID")
pdtfamily.send_keys("Database & Tools" + Keys.TAB)
time.sleep(5)
pdt = browser.find_element_by_id("productID")
pdt.send_keys("Intelligent Agent" + Keys.TAB)
time.sleep(5)
pdt1 = browser.find_element_by_id("patchCacheChkBxID")
pdt1.send_keys(Keys.SPACE)
time.sleep(5)
pdt7 = browser.find_element_by_id("M__Idf")
pdt7.send_keys(plat)
pdt8 = browser.find_element_by_id("M__Idg")
pdt8.send_keys("American English")
# Here I want to execute this javascript - "submitForm('patchCacheAdd',1,{'event':'ok'});return false"
browser.close()
Если я использую -
selenium.GetEval("submitForm('patchCacheAdd',1,{'event':'ok'});return false")
его ошибки, как -
AttributeError: 'module' object has no attribute 'GetEval'I
3 ответа:
попробовать
browser.execute_script
вместоselenium.GetEval
.посмотреть ответ например.
использовать
execute_script
вот пример:driver = webdriver.Firefox() driver.get("http://stackoverflow.com/questions/7794087/running-javascript-in-selenium-using-python") driver.execute_script("document.getElementsByClassName('comment-user')[0].click()")
Если вы переходите от iframes, вы можете заблудиться на своей странице, лучший способ выполнить некоторые jquery без проблем (с selenimum / python/gecko):
# 1) Get back to the main body page driver.switch_to.default_content() # 2) Download jquery lib file to your current folder manually & set path here with open('./_lib/jquery-3.3.1.min.js', 'r') as jquery_js: # 3) Read the jquery from a file jquery = jquery_js.read() # 4) Load jquery lib driver.execute_script(jquery) # 5) Execute your command driver.execute_script('$("#myId").click()')
наслаждайтесь XD