114

I am totally new to Selenium. I want to execute a javascript snippet in the following code (as commented in the code), but can't do so. Please help.

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() 

If I use -

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

it errors out as -

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

3 Answers 3

145

Try browser.execute_script instead of selenium.GetEval.

See this answer for example.

Sign up to request clarification or add additional context in comments.

Comments

79

You can use execute_script, here's a python example:

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()") 

1 Comment

A comment to test the code above
8

If you move from iframes, you may get lost in your page, best way to execute some jquery without issue (with 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()') 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.