Python:模拟登录、点击和执行 JavaScript 语句案例
生活随笔
收集整理的這篇文章主要介紹了
Python:模拟登录、点击和执行 JavaScript 语句案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
案例一:網站模擬登錄
# douban.pyfrom selenium import webdriver
from selenium.webdriver.common.keys import Keys
import timedriver = webdriver.PhantomJS()
driver.get("http://www.douban.com")# 輸入賬號密碼
driver.find_element_by_name("form_email").send_keys("xxxxx@xxxx.com")
driver.find_element_by_name("form_password").send_keys("xxxxxxxx")# 模擬點擊登錄
driver.find_element_by_xpath("//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()
案例二:動態頁面模擬點擊
#!/usr/bin/env python
# -*- coding:utf-8 -*-# python的測試模塊
import unittest
from selenium import webdriver
from bs4 import BeautifulSoupclass douyuSelenium(unittest.TestCase):# 初始化方法def setUp(self):self.driver = webdriver.PhantomJS()#具體的測試用例方法,一定要以test開頭def testDouyu(self):self.driver.get('http://www.douyu.com/directory/all')while True:# 指定xml解析soup = BeautifulSoup(driver.page_source, 'xml')# 返回當前頁面所有房間標題列表 和 觀眾人數列表titles = soup.find_all('h3', {'class': 'ellipsis'})nums = soup.find_all('span', {'class': 'dy-num fr'})# 使用zip()函數來可以把列表合并,并創建一個元組對的列表[(1,2), (3,4)]for title, num in zip(nums, titles):print u"觀眾人數:" + num.get_text().strip(), u"\t房間標題: " + title.get_text().strip()# page_source.find()未找到內容則返回-1if driver.page_source.find('shark-pager-disable-next') != -1:break# 模擬下一頁點擊self.driver.find_element_by_class_name('shark-pager-next').click()# 退出時的清理方法def tearDown(self):print '加載完成...'self.driver.quit()if __name__ == "__main__":unittest.main()
?
案例三:執行 JavaScript 語句
-
- 隱藏百度圖片
from selenium import webdriverdriver = webdriver.PhantomJS()
driver.get("https://www.baidu.com/")# 給搜索輸入框標紅的javascript腳本
js = "var q=document.getElementById(\"kw\");q.style.border=\"2px solid red\";"# 調用給搜索輸入框標紅js腳本
driver.execute_script(js)#查看頁面快照
driver.save_screenshot("redbaidu.png")#js隱藏元素,將獲取的圖片元素隱藏
img = driver.find_element_by_xpath("//*[@id='lg']/img")
driver.execute_script('$(arguments[0]).fadeOut()',img)# 向下滾動到頁面底部
driver.execute_script("$('.scroll_top').click(function(){$('html,body').animate({scrollTop: '0px'}, 800);});")#查看頁面快照
driver.save_screenshot("nullbaidu.png")driver.quit()
-
- 模擬滾動條滾動到底部
#
from selenium import webdriver
import timedriver = webdriver.PhantomJS()
driver.get("https://movie.douban.com/typerank?type_name=劇情&type=11&interval_id=100:90&action=")# 向下滾動10000像素
js = "document.body.scrollTop=10000"
#js="var q=document.documentElement.scrollTop=10000"
time.sleep(3)#查看頁面快照
driver.save_screenshot("douban.png")# 執行JS語句
driver.execute_script(js)
time.sleep(10)#查看頁面快照
driver.save_screenshot("newdouban.png")driver.quit()
總結
以上是生活随笔為你收集整理的Python:模拟登录、点击和执行 JavaScript 语句案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python:Selenium和Phan
- 下一篇: Python:机器视觉与Tesserac