Selenium "NoSuchElementException" Apabila Menggunakan Chrome
Apabila menggunakan Selenium pada Chrome untuk bermain permainan QWOP, anda mungkin menghadapi "selenium.common ralat .exceptions.NoSuchElementException". Ini biasanya berlaku apabila Selenium tidak dapat mencari elemen yang ditentukan menggunakan pengesan yang diberikan.
Sebab NoSuchElementException
Penyelesaian
Kes Penggunaan Ini
Dalam kod yang disediakan, "selenium.common. exceptions.NoSuchElementException" berlaku kerana id locator ("window1") tidak mengenal pasti elemen kanvas secara unik. Untuk menyelesaikan masalah ini, gunakan kod yang diubah suai berikut:
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")
Pengubahsuaian ini memastikan bahawa Selenium menunggu sehingga kanvas boleh diklik sebelum cuba berinteraksi dengannya.
Atas ialah kandungan terperinci Mengapa Selenium Melemparkan 'NoSuchElementException' Apabila Mengawal Permainan QWOP dalam Chrome, dan Bagaimana Ia Boleh Dibetulkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!