selenium 自主登录百度云,新建文件、删除文件及重命名

来源:互联网 发布:360数据恢复手机版 编辑:程序博客网 时间:2024/05/17 23:59
遇到问题:
1、无法定位元素:
当html中tag的class都是相同,xpath绝对路径会变化,所有用这些都无法定位
解决思路:1)用 by_link_txt来取 2)用相对路径,比如
driver.find_element_by_xpath('//a[@data-button-id="b63"]').click()
2、页面里面内容更新后,再找相关元素 element invisible 
解决思路 :重新加载页面
driver.switch_to.default_content()
3、确定内容用enter
driver.find_element_by_class_name("GadHyA").send_keys(Keys.ENTER)

#!/usr/bin/env python# coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.keys import Keysimport timedriver=webdriver.Firefox()driver.get("https://pan.baidu.com/")driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a").click()driver.find_element_by_name("userName").clear()driver.find_element_by_name("userName").send_keys("username")driver.find_element_by_name("password").send_keys("password")driver.find_element_by_id("TANGRAM__PSP_4__submit").click()time.sleep(5)driver.switch_to.default_content()inputs=driver.find_elements_by_class_name("NbKJexb")n=len(inputs)for i in inputs:    print(i.text)print("当前列表文件为 %d" % n)#driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div/div/div/div[1]/div[2]/div[4]/div[2]/a[2]/span").click()driver.find_element_by_link_text('新建文件夹').click()driver.switch_to.default_content()driver.find_element_by_class_name('GadHyA').send_keys(Keys.ENTER)time.sleep(5)inputs1=driver.find_elements_by_class_name("NbKJexb")ns=len(inputs1)print("当前列表文件为 %d" % ns)if ns==n+1:    print("OK!")else:    raise  NameError("添加文件失败!")time.sleep(5)above=driver.find_element_by_class_name("loaWBjA")ActionChains(driver).context_click(above).perform()driver.find_element_by_class_name("EOGexf").click()driver.switch_to.default_content()time.sleep(1)driver.find_element_by_link_text('删除').click()driver.switch_to.default_content()time.sleep(1)driver.find_element_by_xpath('//a[@data-button-id="b63"]').click()driver.switch_to.default_content()time.sleep(5)inputs2=driver.find_elements_by_class_name("NbKJexb")nd=len(inputs2)print("当前列表文件为 %d" % nd)if nd==ns-1:    print("删除OK!")else:    raise NameError("删除文件失败!")time.sleep(5)driver.find_element_by_class_name("EOGexf").click()driver.switch_to.default_content()time.sleep(1)driver.find_element_by_link_text('重命名').click()time.sleep(4)driver.find_element_by_class_name("GadHyA").send_keys('小伙伴2')driver.find_element_by_class_name("GadHyA").send_keys(Keys.ENTER)time.sleep(4)driver.quit()
0 0
原创粉丝点击