import time
from selenium import webdriver
import selenium
from selenium.webdriver.common.by import By
# from selenium.webdriver import ChromeOptions
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
def practice():
""""
selenium 的常用操作
"""
# 1、打开浏览器
driver = webdriver.Chrome()
# 2、最大化浏览器窗口
driver.maximize_window()
# 设置浏览器大小
# driver.set_window_size(800,600)
# 3、打开百度网页
driver.get('http://www.baidu.com')
# 设置停留时间
time.sleep(5)
driver.get('https://www.csdn.net/')
time.sleep(2)
# 退回到上一个网页——百度
driver.back()
time.sleep(2)
# 前进到网页csdn
driver.forward()
time.sleep(2)
# 页面刷新
driver.refresh()
# 4、关闭浏览器
# driver.close()
# 5、网页元素定位
# selenium提供了8种网页元素定位的方式
# 根据ID定位,加s是寻找多节点,其他方式类似,多节点的话,需要使用for循环来遍历每一个节点
# find_element_by_id()
# find_elements_by_id()
# 根据class定位
# find_elements_by_class_name()
# 根据标签名定位
# find_elements_by_tag_name()
# 根据CSS选择器定位
# find_element_by_css_selector()
# 根据name定位
# find_elements_by_name()
# 根据XPath定位
# find_element_by_xpath()
# 根据链接文本定位
# find_element_by_link_text()
# 根据部分链接文本定位
# find_element_by_partial_link_text()
# 获取到元素之后,一些常用属性, 调用一些常用属性
# get_attribute 获取属性值
# text 获取文本值
# id 获取节点id
# location 获取节点在页面中的相对位置
# tag_name 获取标签名称
# size 获取节点大小(宽和高)
# 注意:现在的版本上述方法已经弃用,现在统统使用新方法替代
# 需要首先导入方法
from selenium.webdriver.common.by import By
# 使用By来调用具体使用哪个方法,第二个参数是所要搜索的标签。
driver.find_element(By.ID, 'q')
# 6、获取网页源码
# driver.page_source
# 7、打印url
# driver.current_url
# 8、打印cookie
# driver.get_cookies()
# # 防止被网站识别
# # 需要首先进行设置
# chrome_options = Options()
# chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# browser = webdriver.Chrome(chrome_options=chrome_options)
# 其他方法:
# 将进度条下拉到最底部
# driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
# 弹出alert提示窗
# driver.execute_script("alert('hello word')")
# 加入隐式等待,防止网页崩溃
# driver.implicitly_wait(3)