使用Chrome时Selenium“NoSuchElementException”
在Chrome上使用Selenium玩QWOP游戏时,您可能会遇到“selenium.common” .exceptions.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 等到画布可单击后再尝试与其交互。
以上是为什么 Selenium 在 Chrome 中控制 QWOP 游戏时会抛出'NoSuchElementException”,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!