案例一:网站模拟登录
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = 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()
time.sleep(3)
driver.save_screenshot("douban.png")
with open("douban.html", "w") as file:
file.write(driver.page_source)
driver.quit()
案例二:动态页面模拟点击
import unittest
from selenium import webdriver
from bs4 import BeautifulSoup
class douyuSelenium(unittest.TestCase):
def setUp(self):
self.driver = webdriver.PhantomJS()
def testDouyu(self):
self.driver.get('http://www.douyu.com/directory/all')
while True:
soup = BeautifulSoup(driver.page_source, 'xml')
titles = soup.find_all('h3', {'class': 'ellipsis'})
nums = soup.find_all('span', {'class': 'dy-num fr'})
for title, num in zip(nums, titles):
print u"观众人数:" + num.get_text().strip(), u"\t房间标题: " + title.get_text().strip()
if 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 webdriver
driver = webdriver.PhantomJS()
driver.get("https://www.baidu.com/")
js = "var q=document.getElementById(\"kw\");q.style.border=\"2px solid red\";"
driver.execute_script(js)
driver.save_screenshot("redbaidu.png")
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 time
driver = webdriver.PhantomJS()
driver.get("https://movie.douban.com/typerank?type_name=剧情&type=11&interval_id=100:90&action=")
js = "document.body.scrollTop=10000"
time.sleep(3)
driver.save_screenshot("douban.png")
driver.execute_script(js)
time.sleep(10)
driver.save_screenshot("newdouban.png")
driver.quit()