在自动化测试和开发领域,Selenium已经成为了不可或缺的工具之一。今天,我想与大家分享一个我最近完成的小项目:使用Selenium自动化创建Kahoot测验。这不仅仅是将数据从电子表格导入到Kahoot的过程,更是一个关于如何解决Web元素动态变化带来的挑战的故事。
项目背景
我的目标是将一份包含1000个最常用西班牙语名词的Excel文件转换成Kahoot测验。这份Excel文件包含了两个关键列:问题(西班牙语单词)和答案(英语翻译)。然而,在自动化过程中,我遇到了两个主要问题:
- 动态元素的点击与输入:由于Web元素的加载和状态变化,Selenium有时无法找到或点击这些元素。
- 元素过时异常(StaleElementReferenceException):在尝试操作元素时,元素可能已经不再存在或已被替换。
解决方案
为了解决这些问题,我采用了以下方法:
1. 显式等待:
我引入了WebDriverWait来确保元素在点击或输入之前是可见的和可操作的。以下是一个示例:
fromselenium.webdriver.