Ejecutando javascript en Selenium usando Python

Soy totalmente nuevo en Selenium. Quiero ejecutar un fragmento de código javascript en el siguiente código (como se comenta en el código), pero no puedo hacerlo. Por favor ayuda.

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 number\n") rel = raw_input("Enter release\n") plat = raw_input("Enter port\n") 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() 

Si yo uso –

 selenium.GetEval("submitForm('patchCacheAdd',1,{'event':'ok'});return false") 

se descompone como

 AttributeError: 'module' object has no attribute 'GetEval'I 

Related of "Ejecutando javascript en Selenium usando Python"

Pruebe browser.execute_script lugar de selenium.GetEval .

Vea esta respuesta por ejemplo.

Use execute_script , aquí hay un ejemplo de python:

 from selenium import webdriver 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()") 

Si se mueve desde iframes, puede perderse en su página, la mejor manera de ejecutar algunos jquery sin problemas (con 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()') 

Disfruta xd