问题分析
- 可能是没有加载完成,元素找不到。
- 元素加载完成,但是元素需要点击按钮,才会触发元素插入进来
- 元素加载完成,看到的值和实际后台传输的值是不一致的
- 元素加载完成,本质是只有属性,是没有值的。看到的都是临时函数调用显示出来的
解决方案
针对第一种
- 可以适当延长休眠时间来等待元素加载完成
- 显示等待元素加载完成
element = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "myElement")))
element.click()
针对第二种
- 先使用selenium根据xpath等方式选中元素,并点击
- 点击后再显示等待1秒,重新选取元素即可
针对第三种
select_element = driver.find_element_by_id("下拉列表的ID")
# 创建Select对象
select = Select(select_element)
# 通过索引选择(索引从0开始)
select.select_by_index(1)
# 通过值选择
select.select_by_value("选项的值")
# 通过可见文本选择
select.select_by_visible_text("显示的文本")
针对第四种
- 使用xpath等方式来点击
- 使用JavaScript来点击