पायथन का उपयोग करके सेलेनियम में जावास्क्रिप्ट चलाना


89

मैं सेलेनियम के लिए बिल्कुल नया हूं। मैं निम्नलिखित कोड में एक जावास्क्रिप्ट स्निपेट निष्पादित करना चाहता हूं (जैसा कि कोड में टिप्पणी की गई है), लेकिन ऐसा नहीं कर सकते। कृपया मदद करे।

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

अगर मैं उपयोग करता हूं -

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

यह इस प्रकार है -

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

जवाबों:



62

उपयोग execute_script, यहाँ एक अजगर उदाहरण है:

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

7

यदि आप iframes से आगे बढ़ते हैं, तो आप अपने पेज में खो सकते हैं, बिना किसी समस्या के कुछ jquery निष्पादित करने का सबसे अच्छा तरीका है (सेलेनियम / पायथन / जेको के साथ):

# 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()')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.