《selenium2 python 自动化测试实战》(14)——下载文件

Posted 孟船长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《selenium2 python 自动化测试实战》(14)——下载文件相关的知识,希望对你有一定的参考价值。

 

说下载文件之前,我再和大家说一下用cookie登录的事,既然我们用cookie登录,那么传过去的cookie肯定是要和对应的网站完全一致的,注意,是包括大小写哦,本来我也是不知道,我用这个方法登录自己公司的网站,fiddler抓包和代码如下:

# coding: utf-8

from selenium import webdriver
from time import sleep driver = webdriver.Firefox() driver.get("https://www.yiyao.cc") driver.add_cookie({\'name\': \'_ui_\',
                 \'value\': \'oVTQORvHOLSJQIxA==\',
                 \'domain\': \'我公司的网站.cc\'}) driver.add_cookie({\'name\': \'_ut_\',
                  \'value\': \'otrftkqcwJoQ4F2Q==\',
                  \'domain\': \'我公司的网站.cc\'}) sleep(3) driver.refresh()

        这时候我怎么跑就是不能实现自动登录,我也很奇怪,后来注意到fiddler里的domain是大写的D,也就是Domain,于是我抱着试一下的态度去把代码里的domain字段改成了Domain,竟然成功了。。所以在这里也提醒一下大家,道理都是想通的,如果你发现自己登录不上去,那肯定有哪里写的不太准确,当然,前提是你们公司的网站在安全方面做得不是很完善,如果安全做得非常好的,登不上去就别问我了,我也不会

下载文件

        下载文件的代码网上一找一大堆,但是要想找能写下载例子的网站就不容易找了……找到了还得调通了,真的很麻烦……先抱怨两句

        先看代码:

# coding: utf-8

from selenium import webdriver

from time import sleep profile = webdriver.FirefoxProfile() profile.set_preference(\'browser.download.dir\', r\'C:\\Users\\DELL\\Desktop\') profile.set_preference(\'browser.download.folderList\', 2) profile.set_preference(\'browser.download.manager.showWhenStarting\', False) # 下载的文件格式是xlsx
profile.set_preference(\'browser.helperApps.neverAsk.saveToDisk\', \'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\') driver = webdriver.Firefox(firefox_profile=profile) driver.get("https://www.yiyao.cc") driver.add_cookie({\'name\': \'_ui_\',
                   \'value\': \'1ItEQ8yIFCS+kOCim0jLfw==\',
                   \'Domain\': \'yiyao.cc\'}) driver.add_cookie({\'name\': \'_ut_\',
                   \'value\': \'3Gl6h8mw0JvBy5LDCxtT+g==\',
                   \'Domain\': \'yiyao.cc\'}) sleep(3) driver.refresh() sleep(3)
# 去掉target="_blank"属性
js = \'document.getElementsByClassName("orange")[0].target="";\'
driver.execute_script(js)

# 点击卖家中心
driver.find_element_by_xpath(".//*[@id=\'userType\']/a[2]").click() sleep(1)

# 点击商品管理
driver.find_element_by_xpath(".//*[@id=\'firstpane\']/h3[2]").click() sleep(2)

# 点击商品发布
driver.find_element_by_xpath(".//*[@id=\'firstpane\']/div[2]/a[2]").click()

# 点击批量发布
driver.find_element_by_xpath(".//*[@id=\'title-tabs\']/span[2]").click() sleep(2)

# 点击“否”
driver.find_element_by_xpath(".//*[@id=\'down_no_code_template\']").click()

# 接下来进入下载流程

        以上代码就是登录网站,点击按钮后进行下载的全部流程了。我们来解释一下:

        上面的一大堆set_preference其实就是Firefox浏览器的设置,那么我们可以在火狐浏览器里找到这些名字:

        在火狐浏览器地址栏输入:about:support,然后下拉,找到:

        看,set_preference的那些key值就是取的这里面的值,也就是set_preference的操作就是修改这些配置的值。我把百度来的给大家贴下来,下面就是常用的这些key的意思,都是与下载有关的选项:

《selenium2 python 自动化测试实战》——切换窗口

《selenium2 python 自动化测试实战》(13)——上传文件

《selenium2 python 自动化测试实战》——键盘事件

《selenium2 python 自动化测试实战》(21)——unittest单元测试框架解析

《selenium2 python 自动化测试实战》(14)——下载文件

selenium2自动化测试实战--基于Python语言