1、多標籤窗口(不懂)css
from selenium import webdriver
# 開瀏覽器
driver = webdriver.Firefox()
# 訪問北京58
url = 'http://bj.58.com/'
driver.get(url)
# 定位到房屋出租元素
el = driver.find_element_by_link_texthtml
('房屋出租')web
print('點擊以前的身份證列表是:',瀏覽器
driver.window_handles)cookie
print('點擊前的url:',driver.current_url)框架
el.click()ide
print('點擊以後的身份證列表是:',ui
driver.window_handles)url
2、表單框架spa
(一)進入表單(似懂非懂)
# 導包
from selenium import webdriver
import time
# 建立瀏覽器
driver = webdriver.Firefox()
# 訪問126
url = 'http://126.com/'
driver.get(url)
# 防止加載太快
time.sleep(5)
# 定位到表單
# el_frame = driver.find_element
_by_css_selector('#x-URS-iframe')
# 切換進入表單中# driver.switch_to.frame(el_frame)
# 經過id進入
el_user = driver.find_element_by_name
('email')
el_pwd = driver.find_element_by_name
('password')
(二)退出表單
案例:本地加載-多表單切換
# 導入os庫,用於獲取文件路徑
import os
import time
# 建立瀏覽器
driver = webdriver.Firefox()
# 獲取網頁訪問路徑,os.path.abspath
(文件名)獲取文件的絕對路徑
file_path = 'file:///' + os.path.abspath
('example_frame.html')
print(file_path)
el = driver.find_element_by_id
('sb_form_q')
el_sub = driver.find_element_by_id
('sb_form_go')
el_search = driver.find_element_by_id
('sb_form')
el_search = driver.find_element_by_id
('sb_form') except:3、警告框
from selenium import webdriver
import time
# 建立一個瀏覽器
driver = webdriver.Firefox()
# 訪問百度
url = 'http://www.baidu.com'
driver.get(url)
# 定位到設置
el = driver.find_element_by_link_text('設置')
el.click()
# 定位搜索設置,並點擊
el_set = driver.find_element_by_css_
selector('.setpref')
el_save = driver.find_element_by_css_
selector('.prefpanelgo')
#driver.switch_to.alert.accept()
# 進入警告框,而且解散警告框
4、鼠標鍵盤框
from selenium import webdriver
# 導入動做鏈類
from selenium.webdriver import ActionChains
# 開瀏覽器
driver = webdriver.Firefox()
# 訪問百度
url = 'http://www.baidu.com'
driver.get(url)
# 定位到logo元素
el_logo = driver.find_element_by
_css_selector('#lg > map:nth-child(2)
> area:nth-child(1)')
# 鼠標右擊操做,操做元素前,須要將操做的元素定位
出來而且穿入相應的動做中,若是要執行操做,須要調
用perform()
ActionChains(driver).context_click(el_logo)
.perform()
from selenium import webdriver
# 導入動做鏈類
from selenium.webdriver import ActionChains
import time
# 開瀏覽器
driver = webdriver.Firefox()
# 訪問頭條
url = 'https://www.toutiao.com/ch/news
_society/'
el = driver.find_element_by_css_selector
('.wchannel > ul:nth-child(2) >
li:nth-child(2) > a:nth-child(1)
> span:nth-child(1)')
ActionChains(driver).double_click(el).
perform()
from selenium import webdriver
# 導入動做鏈類
from selenium.webdriver import ActionChains
import time
# 開一個瀏覽器
driver = webdriver.Firefox()
driver.maximize_window()
# 訪問京東
url = 'http://www.jd.com'
driver.get(url)
# 獲取分類組元素
el_list = driver.find_elements_by_
class_name('cate_menu_item')
for el in el_list:
# 鼠標懸停操做
ActionChains(driver).move_to_element(el)
.perform()
time.sleep(1)from selenium import webdriver
# 導入Key類,key類中包含不少鍵盤按鈕操做
from selenium.webdriver.common.keys import
Keys
5、下拉框
案例一:百度
from selenium import webdriver
# 導入Select類
from selenium.webdriver.support.select
import Select
el = driver.find_element_by_link_text
('設置')
el_set = driver.find_element_by_
css_selector('.setpref')
# selobj.select_by_index(2)
# time.sleep(1)
# 經過可見文本進行選擇
# selobj.select_by_visible_text
('每頁顯示50條')
# time.sleep(1)
# selobj.select_by_visible_tex
t('每頁顯示10條')
# selobj.select_by_visible_text
('每頁顯示20條')
案例二:hao123
from selenium import webdriver
import time
# 建立瀏覽器
driver = webdriver.Firefox()
# 訪問好123
url = 'https://www.hao123.com/'
driver.get(url)
for i in range(100):
# x管水平,y管垂直
js = 'window.scrollTo(0,%s)'%(i*100)
driver.execute_script(js)
time.sleep(0.5)
# js1= "var q=document.documentElement.
scrollTop=0"6、定位等待
顯式等待
from selenium import webdriver
import time
# 建立瀏覽器
driver = webdriver.Firefox()
# 訪問好123
url = 'https://www.hao123.com/'
driver.get(url)
for i in range(100):
# x管水平,y管垂直
js = 'window.scrollTo(0,%s)'%(i*100)
driver.execute_script(js)
time.sleep(0.5)
# js1= "var q=document.documentElement
.scrollTop=0"隱式等待
from selenium import webdriver
# 建立瀏覽器
driver = webdriver.Firefox()
url = 'https://www.amazon.cn/'
driver.get(url)
driver.implicitly_wait(20)
driver.close()
6、cookies
from selenium import webdriver
# 建立瀏覽器
driver = webdriver.Firefox()
# 訪問有道
url = 'http://www.youdao.com/'
driver.get(url)
# 獲取cookies,直接調用,不須要參數
data = driver.get_cookies()
print(data)
# 刪除全部cookies
driver.delete_all_cookies()
# 設置cookies
cookie = {"name":"itcast","value":"soft_test"}
driver.add_cookie(cookie)——Selenium封裝——
(不懂)
from selenium import webdriver
import time
class Common(object):
# 初始化
def __init__(self):
# 建立瀏覽器
self.driver = webdriver.Firefox()
# 瀏覽器最大化
self.driver.maximize_window()
# 訪問指定url
def open_url(self, url):
self.driver.get(url)
self.driver.implicitly_wait(10)
def close_driver(self):
self.driver.quit()
# 結束的時候清理了
def __del__(self):
time.sleep(3)
self.driver.quit()
if __name__ == '__main__':
com = Common()
com.open_url('http://www.baidu.com')
com.open_url('http://www.hao123.com') com.close_driver()