Selenium "NoSuchElementException" lors de l'utilisation de Chrome
Lorsque vous utilisez Selenium sur Chrome pour jouer au jeu QWOP, vous pouvez rencontrer le message "selenium.common .exceptions.NoSuchElementException". Cela se produit généralement lorsque Selenium ne peut pas trouver l'élément spécifié à l'aide du localisateur donné.
Raisons de NoSuchElementException
Solution
Ce cas d'utilisation
Dans le code fourni, le "selenium.common.exceptions.NoSuchElementException" se produit car le le localisateur d'identifiant ("window1") n'identifie pas de manière unique l'élément canevas. Pour résoudre ce problème, utilisez le code modifié suivant :
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait browser = webdriver.Chrome() browser.set_window_size(640, 480) browser.get('http://www.foddy.net/Athletics.html?webgl=true') browser.implicitly_wait(10) canvas = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//canvas[@id='window1']"))) canvas.click() while (True): action = ActionChains(browser) action.move_to_element(canvas).perform() canvas.click() canvas.send_keys("q")
Cette modification garantit que Selenium attend que le canevas soit cliquable avant de tenter d'interagir avec lui.
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!