python-selenium遍历文件列表

需求:遍历QQ邮箱的在线文档并下载
关于QQ邮箱自动登录的问题可以参考:python实现滑动验证
在这里插入图片描述审查一下元素,这一块也就是我们所需要的文件列表:
在这里插入图片描述

文件列表的xpath:/html/body/div[2]/div/div[2]/div[2]/div[2]/ul
每个文件的xpath:/html/body/div[2]/div/div[2]/div[2]/div[2]/ul/li[i]

在这里插入图片描述这个就是下载按钮的页面元素!
直接上代码:


def download_onlinedoc():
    global browser
    onlinedoc_button=browser.find_element_by_id('folder_onlinedoc_td')
    onlinedoc_button.click()
    time.sleep(2)
    browser.switch_to.frame('mainFrame')
    current_url1=browser.current_url
    print("进入第一层框架:",current_url1)
    time.sleep(2)
    browser.switch_to.frame('onlineDoc_detail_iframe')
    current_url2 = browser.current_url
    print("进入第二层框架:", current_url2)
    time.sleep(2)
    docList=browser.find_element_by_class_name('index_docList')
    alldocs=docList.find_elements_by_class_name('index_docItem')
    print("一共含有{}个文件".format(len(alldocs)))
    for x in alldocs:
        print(x)
        opreations=x.find_element_by_class_name("index_docItem_operation")
        opreations.click()
        time.sleep(2)
        menus=opreations.find_element_by_class_name('od_dropdownMenu')
        menusidd=menus.find_element_by_id('menu')
        dowload_button=menusidd.find_element_by_class_name('od_dropdownMenu_item.od_tipsBubbleWrap')
        dowload_button.click()
        # pyautogui.hotkey('down')
        pyautogui.hotkey('enter')
        time,sleep(2)
        pyautogui.click(250,600)
    browser.refresh()
    time.sleep(5)

注意:
**1.alldocs=docList.find_elements_by_class_name(‘index_docItem’)获取文件列表,得到一个list
2.嵌套元素元素需要一层一层的获取,不能跨层获取,不熟悉的话可以用xpath来理一下
3.网页元素会变动(比如点击按钮出现新的下拉框),获取到哪一层就前进到那层并使用find_element_xxx定位,不要提前点开,否则可能会出错!**比如下面这个:
在这里插入图片描述
最右边的那个元素:

class=“index_docItem_operation”

但是点击之后就变了:

class=“index_docItem_operation index_docItem_operation_BottomShow”

在这里插入图片描述使用下面这个就会找不到元素!
个人踩坑记录,欢迎交流讨论!

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值