Je suis totalement nouveau au sélénium. Je souhaite exécuter un extrait de code javascript dans le code suivant (tel que commenté dans le code), mais je ne peux pas le faire. S'il vous plaît aider.
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 j'utilise -
Selenium.GetEval("submitForm('patchCacheAdd',1,{'event':'ok'});return false")
il se trompe comme -
AttributeError: 'module' object has no attribute 'GetEval'I
Essayez browser.execute_script
au lieu de Selenium.GetEval
.
Voir cette réponse par exemple.
Utilisation execute_script
_, voici un exemple 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 vous quittez les iframes, vous risquez de vous perdre dans votre page. C'est le meilleur moyen d'exécuter des requêtes sans problème (avec sélénium/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()')
Profitez de XD