Selenium „NoSuchElementException“ bei Verwendung von Chrome
Wenn Sie Selenium auf Chrome zum Spielen des QWOP-Spiels verwenden, stoßen Sie möglicherweise auf die Fehlermeldung „selenium.common .Exceptions.NoSuchElementException“-Fehler. Dies tritt im Allgemeinen auf, wenn Selenium das angegebene Element mit dem angegebenen Locator nicht finden kann.
Gründe für NoSuchElementException
Lösung
Dieser Anwendungsfall
Im bereitgestellten Code tritt die „selenium.common.Exceptions.NoSuchElementException“ auf, weil die Der ID-Locator („window1“) identifiziert das Canvas-Element nicht eindeutig. Um dieses Problem zu beheben, verwenden Sie den folgenden geänderten Code:
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")
Diese Änderung stellt sicher, dass Selenium wartet, bis die Leinwand anklickbar ist, bevor versucht wird, mit ihr zu interagieren.
Das obige ist der detaillierte Inhalt vonWarum löst Selenium bei der Steuerung des QWOP-Spiels in Chrome eine „NoSuchElementException' aus und wie kann das Problem behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!