1.網(wǎng)站模擬登錄
# douban.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.PhantomJS()
driver.get("http://www.douban.com")
# 輸入賬號(hào)密碼
driver.find_element_by_name("form_email").send_keys("xxxxx@xxxx.com")
driver.find_element_by_name("form_password").send_keys("xxxxxxxx")
# 模擬點(diǎn)擊登錄
driver.find_element_by_xpath("http://input[@class='bn-submit']").click()
# 等待3秒
time.sleep(3)
# 生成登陸后快照
driver.save_screenshot("douban.png")
with open("douban.html", "w") as file:
file.write(driver.page_source)
driver.quit()
2.動(dòng)態(tài)頁(yè)面模擬點(diǎn)擊
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# python的測(cè)試模塊
import unittest
from selenium import webdriver
from bs4 import BeautifulSoup
class douyuSelenium(unittest.TestCase):
# 初始化方法
def setUp(self):
self.driver = webdriver.PhantomJS()
#具體的測(cè)試用例方法,一定要以test開(kāi)頭
def testDouyu(self):
self.driver.get('http://www.douyu.com/directory/all')
while True:
# 指定xml解析
soup = BeautifulSoup(driver.page_source, 'xml')
# 返回當(dāng)前頁(yè)面所有房間標(biāo)題列表 和 觀(guān)眾人數(shù)列表
titles = soup.find_all('h3', {'class': 'ellipsis'})
nums = soup.find_all('span', {'class': 'dy-num fr'})
# 使用zip()函數(shù)來(lái)可以把列表合并助琐,并創(chuàng)建一個(gè)元組對(duì)的列表[(1,2), (3,4)]
for title, num in zip(nums, titles):
print u"觀(guān)眾人數(shù):" + num.get_text().strip(), u"\t房間標(biāo)題: " + title.get_text().strip()
# page_source.find()未找到內(nèi)容則返回-1
if driver.page_source.find('shark-pager-disable-next') != -1:
break
# 模擬下一頁(yè)點(diǎn)擊
self.driver.find_element_by_class_name('shark-pager-next').click()
# 退出時(shí)的清理方法
def tearDown(self):
print '加載完成...'
self.driver.quit()
if __name__ == "__main__":
unittest.main()
3.執(zhí)行 JavaScript 語(yǔ)句
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("https://www.baidu.com/")
# 給搜索輸入框標(biāo)紅的javascript腳本
js = "var q=document.getElementById(\"kw\");q.style.border=\"2px solid red\";"
# 調(diào)用給搜索輸入框標(biāo)紅js腳本
driver.execute_script(js)
#查看頁(yè)面快照
driver.save_screenshot("redbaidu.png")
#js隱藏元素,將獲取的圖片元素隱藏
img = driver.find_element_by_xpath("http://*[@id='lg']/img")
driver.execute_script('$(arguments[0]).fadeOut()',img)
# 向下滾動(dòng)到頁(yè)面底部
driver.execute_script("$('.scroll_top').click(function(){$('html,body').animate({scrollTop: '0px'}, 800);});")
#查看頁(yè)面快照
driver.save_screenshot("nullbaidu.png")
driver.quit()
#
from selenium import webdriver
import time
driver = webdriver.PhantomJS()
driver.get("https://movie.douban.com/typerank?type_name=劇情&type=11&interval_id=100:90&action=")
# 向下滾動(dòng)10000像素
js = "document.body.scrollTop=10000"
#js="var q=document.documentElement.scrollTop=10000"
time.sleep(3)
#查看頁(yè)面快照
driver.save_screenshot("douban.png")
# 執(zhí)行JS語(yǔ)句
driver.execute_script(js)
time.sleep(10)
#查看頁(yè)面快照
driver.save_screenshot("newdouban.png")
driver.quit()
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者