Selenium定位2048游戏Game Over!元素失败求助
解决Selenium无法定位2048游戏“Game Over!”元素的问题
放弃绝对XPath,改用更稳定的相对定位:
你用的绝对XPath依赖页面固定层级,一旦页面结构有细微调整就会失效。推荐用以下两种方式定位:# 基于文本精确匹配定位 TextV = wait.until(EC.visibility_of_element_located((By.XPATH, "//p[text()='Game Over!']"))).text # 或者基于父元素的class属性定位(更适配页面结构变化) TextV = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".game-message p"))).text确认等待逻辑的合理性:
确保显式等待的超时时间足够(比如设置15秒),避免因弹窗加载慢导致元素未被捕获:wait = WebDriverWait(driver, 15)排查弹窗的显示状态:
“Game Over!”提示位于弹窗容器内,需确保弹窗已完全显示。若visibility_of_element_located仍不生效,可先尝试presence_of_element_located确认元素存在,再调用element.text获取内容,但优先保证元素可见后再操作。
内容的提问来源于stack exchange,提问作者Shaye
相关产品推荐
相关产品推荐

