Chrome 使用時の Selenium "NoSuchElementException"
Chrome で Selenium を使用して QWOP ゲームをプレイすると、「selenium.common」が発生することがあります。 .例外.NoSuchElementException」エラー。これは通常、Selenium が指定されたロケーターを使用して指定された要素を見つけられない場合に発生します。
NoSuchElementException の理由
解決策
この使用例
提供されたコードでは、「selenium.common.Exceptions. NoSuchElementException」は、ID ロケーター (「window1」) がキャンバス要素を一意に識別しないために発生します。これを解決するには、次の変更コードを使用します。
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")
この変更により、Selenium はキャンバスと対話する前に、キャンバスがクリック可能になるまで待機するようになります。
以上がChrome で QWOP ゲームを制御するときに Selenium が「NoSuchElementException」をスローするのはなぜですか?またその修正方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。