나는 Selenium을 완전히 처음 사용합니다. 다음 코드에서 자바 스크립트 스 니펫을 실행하고 싶지만 (코드에 설명 된대로) 그렇게 할 수 없습니다. 도와주세요.
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
답변
답변
를 사용하십시오 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()")
답변
iframe에서 이동하면 페이지에서 길을 잃을 수 있습니다. 문제없이 일부 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()')