Python扩展模块——selenium的使用(定位、下载文件等)

时间:2022-11-17 16:23:55

想全面的使用selenium可以下载《selenium 2自动化测试实战-基于Python语言》PDF的电子书看看

我使用到了简单的浏览器操作,下载文件等功能。。。

推荐使用firefox,selenium对火狐的支持非常好,在写脚本的时候可以避开很多坑

from selenium import webdriver

driver = webdriver.Firefox()  # 创建一个实例
driver.get(weburl) #打开浏览器输入URL为weburl
driver.get_screenshot_as_file(“保存路径”)#浏览器窗口截图
#元素定位方法,这里简单说几个
driver.find_element_by_xpath() #xpath html绝对路径定位,其他方法定位不到时使用
driver.find_element_by_id() #通过ID定位
driver.find_element_by_class_name() #类名定位
在标签没有属性的情况下定位:
driver.find_element_by_xpath("//strong[text()='123123']")
 #定位后可通过一下方法操作 #send_keys('向该元素发送本字符串') #click() #鼠标单击 #text #获取元素内容 例如; driver.find_element_by_id('name').send_keys('admin') #其他一些方法,很多,就不一一例举了 driver.implicitly_wait(5) # 设置最长等待时间 driver.refresh() #页面刷新
lr=driver.current_url   #获取当前浏览器URL

下载文件的代码:

      fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2) #改为2,可设置文件保存目录
fp.set_preference("browser.download.manager.showWhenStarting",False) #False:不显示下载
fp.set_preference("browser.download.dir",r"C:\Program Files (x86)") #第二个参数是文件的保存路径
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/x-msdownload") #第二个元素为下载文件的扩展名Content-type,此处为exe文件
dr = webdriver.Firefox(firefox_profile=fp) #更多扩展名Content-type可到http://tool.oschina.net/commons查看
dr.get(url)
time.sleep(4) #等待页面显示
dr.find_element_by_partial_link_text('点击下载').click()
time.sleep(2) #等待下载
dr.quit() #关闭浏览区驱动,退出浏览器