Maison > Article > développement back-end > Comment puis-je exécuter des extraits de code JavaScript dans Selenium à l'aide de Python ?
Exécution d'extraits de code JavaScript dans Selenium à l'aide de Python
Dans l'extrait de code que vous avez fourni, vous avez rencontré des difficultés pour exécuter un extrait de code JavaScript dans le contexte de votre Selenium scénario. Initialement, vous avez tenté d'utiliser la syntaxe "selenium.GetEval", mais cela a entraîné une AttributeError.
Pour résoudre ce problème, vous devez plutôt utiliser la méthode "browser.execute_script". Cette méthode vous permet d'évaluer du code JavaScript arbitraire au sein du DOM de la page actuelle.
Voici une version modifiée de votre code qui inclut la méthode "browser.execute_script" :
<code class="python">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") # Execute JavaScript snippet using browser.execute_script browser.execute_script("submitForm('patchCacheAdd',1,{'event':'ok'});return false") browser.close()</code>
Par en utilisant la méthode "browser.execute_script", vous pouvez maintenant exécuter l'extrait JavaScript souhaité dans votre script Selenium.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!