项目场景:
使用python+selenium实现批量自动下载的时候。
问题描述
碰到鼠标悬停在那里才显示下一级菜单,我尝试直接用click点击也基本能出来,但是有时候报错,对于批量处理来说是不可取的,最后还是用键鼠的Action来拖动滚动条到底部,再用JS脚本实现悬停。但是也暴露出新的问题,悬停有时候也出现BUG,不知道咋回事。
# 把内嵌滚动条滑到底部
js = 'document.getElementById("left_from").scrollTop=10000'
driver.execute_script(js)
#为稳定起见,增加一个强制等待1秒
time.sleep(1)
# 鼠标悬停在导出坐标按键上
ActionChains(driver).move_to_element(driver.find_element(By.XPATH, '//span[text()="导出坐标"]')).perform()
driver.find_element(By.XPATH, '//span[text()="导出坐标"]').click()
driver.find_element(By.XPATH, '//span[text()="导出TXT"]').click()
原因分析:
–还没找到啥原因,因为着急用成果。
解决方案:
测试下来,最后在原来的代码基础上,增加一个点击动作,也就是悬停后还进行点击,运行相对稳定了。(用两对星号括起来的那句)
# 把内嵌滚动条滑到底部
js = 'document.getElementById("left_from").scrollTop=10000'
driver.execute_script(js)
#为稳定起见,增加一个强制等待1秒
time.sleep(1)
# 鼠标悬停在导出坐标按键上
ActionChains(driver).move_to_element(driver.find_element(By.XPATH, '//span[text()="导出坐标"]')).perform()
**driver.find_element(By.XPATH, '//span[text()="导出坐标"]').click()**
driver.find_element(By.XPATH, '//span[text()="导出TXT"]').click()