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()