from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.common.exceptions import TimeoutException,NoSuchElementException
from time import sleep
import random
def use_selenium():
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.taobao.com/")
# 输出网页源代码
print(browser.page_source)
# 关闭浏览器
browser.close()
def use_select():
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.taobao.com/")
# 查找单个节点
input = browser.find_element_by_xpath("//*[@id='q']")
print(input)
# 关闭浏览器
browser.close()
def use_selects():
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.taobao.com/")
# 查找多个节点
input = browser.find_elements_by_css_selector('.service-bd a')
print(input)
# 关闭浏览器
browser.close()
def user_interaction():
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.taobao.com/")
# 查找单个节点
input = browser.find_element_by_xpath("//*[@id='q']")
# 输入
input.send_keys("口红")
sleep(1)
print(input)
butten = browser.find_element_by_css_selector('.search-bd .search-panel .search-button .btn-search')
# 点击
butten.click()
# 关闭浏览器
browser.close()
def user_execute_script():
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.taobao.com/")
for i in range(0,1000,50):
# 输出现在的高度
check_height = browser.execute_script("return document.body.scrollHeight;")
# 暂停时间
t = random.uniform(1, 3)
sleep(t)
# 滚动距离
h = random.uniform(0, 50)
browser.execute_script("window.scrollBy(0,{0})".format(h))
# 滚动之后的高度
check_height1 = browser.execute_script("return document.body.scrollHeight;")
# 两次对比
print(str(check_height) + '**************' + str(check_height1))
print("end")
def use_implicitly_wait():
"""隐式等待"""
# 声明浏览器对象
browser = webdriver.Chrome()
# 没有找到,等待一段时间后继续查找
browser.implicitly_wait(10)
# get方法请求网页
browser.get("https://www.taobao.com/")
# 查找单个节点
input = browser.find_element_by_xpath("//*[@id='q']")
print(input)
# 关闭浏览器
browser.close()
def use_wait():
"""隐式等待"""
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.taobao.com/")
# 如果在规定时间找到了节点,则返回该节点,否则,抛出异常
wait = WebDriverWait(browser,10)
# 查找单个节点
input = wait.until(ec.presence_of_element_located((By.ID,'q')))
print(input)
# 关闭浏览器
browser.close()
def use_forward_back():
"""前进和后退"""
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.baidu.com/")
browser.get("https://www.taobao.com/")
browser.get("http://111.43.36.169/meol/index.do")
# 后退
browser.back()
sleep(1)
# 前进
browser.forward()
sleep(2)
# 后退
browser.back()
# 后退
browser.back()
# 关闭浏览器
browser.close()
def use_cookies():
"""小饼干"""
# 声明浏览器对象
browser = webdriver.Chrome()
# get方法请求网页
browser.get("https://www.baidu.com/")
print(browser.get_cookies())
# browser.add_cookie({})
# 关闭浏览器
browser.close()
def use_cookies():
"""选项卡"""
# 声明浏览器对象
browser = webdriver.Chrome()
# 开启选项卡
browser.execute_script('window.open()')
# window_handles 获取开启的选项卡列表
print(browser.window_handles)
# switch_to.window 切换选项卡
browser.switch_to.window(browser.window_handles[1])
browser.get("https://www.baidu.com/")
sleep(3)
browser.switch_to.window(browser.window_handles[0])
browser.get("https://www.taobao.com/")
# 关闭浏览器
browser.close()
def use_try_except():
"""异常处理"""
# 声明浏览器对象
browser = webdriver.Chrome()
try:
browser.get("https://www.baidu.com/")
except TimeoutException:
print("Time Out")
try:
input = browser.find_element_by_xpath("//*[@id='q']")
print(input)
except NoSuchElementException:
print("No Element")
# 出现异常之后就会关闭浏览器所以再写finally的时候,意义不大,反而会报错
# finally:
# browser.close()
if __name__ == '__main__':
use_selenium()
use_select()
use_selects()
user_interaction()
user_execute_script()
use_implicitly_wait()
use_wait()
use_forward_back()
use_cookies()
use_try_except()
是不是我的二十岁,注定要为selenium掉眼泪
猜你喜欢
转载自blog.csdn.net/wei_zhen_dong/article/details/105485327
今日推荐
周排行