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.

    0
      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
      • A comment to test the code aboveCommentedJan 9, 2022 at 14:19
      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()') 

        Start asking to get answers

        Find the answer to your question by asking.

        Ask question

        Explore related questions

        See similar questions with these tags.