Selenium基本操作
打开浏览器
from selenium import webdriver
# 声明要模拟的浏览器是谷歌浏览器
browser = webdriver.Chrome()
# 在浏览器中打开指定网址
browser.get("https://www.baidu.com/")
# 使用XPath法选择元素
browser.find_element_by_xpath('//*[@id="kw"]').send_keys('python')
browser.find_element_by_xpath('//*[@id="su"]').click()
# 获取网页的源文件
data = browser.page_source
print(data)
# 退出浏览器
browser.quit()
无界面浏览器模式
from selenium import webdriver
# 无界面浏览器模式
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--headless')
browser = webdriver.Chrome(options=chromeOptions)
# 在浏览器中打开指定网址
browser.get("https://www.baidu.com/")
# 使用CSS选择法选择元素
browser.find_element_by_css_selector('#kw').send_keys('python')
browser.find_element_by_css_selector('#su').click()
# 获取网页的源文件
data = browser.page_source
print(data)
# 退出浏览器
browser.quit()
浏览器基本操作
from selenium import webdriver
import time
# 声明要模拟的浏览器是谷歌浏览器
browser = webdriver.Chrome()
# 在浏览器中打开指定网址
browser.get("https://www.baidu.com/")
time.sleep(2)
browser.get('https://juejin.cn/')
time.sleep(2)
# 浏览器后退
browser.back()
time.sleep(2)
# 浏览器前进
browser.forward()
time.sleep(2)
# 浏览器刷新
browser.refresh()
# 获取页面的标题
print(browser.title)
# 获取当前页面的URL
print(browser.current_url)
# 获取网页的源文件
data = browser.page_source
print(data)
# 退出浏览器
browser.quit()
多窗口操作
from selenium import webdriver
import time
# 声明要模拟的浏览器是谷歌浏览器
browser = webdriver.Chrome()
# 在浏览器中打开指定网址
browser.get("http://sahitest.com/demo/")
# 查看当前窗口句柄
handle = browser.current_window_handle
print(handle)
# 使用XPath法选择元素
browser.find_element_by_link_text('Window Open Test').click()
time.sleep(2)
print(browser.current_url)
# 查看所有窗口句柄
handles = browser.window_handles
print(handles)
# 切换到指定窗口
browser.switch_to.window(handle)
time.sleep(2)
print(browser.current_url)
browser.switch_to.window(handles[1])
print(browser.title)
# 关闭当前窗口
browser.close()
# 查看所有窗口句柄
print(browser.window_handles)
# 退出浏览器
browser.quit()
模拟鼠标操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
browser = webdriver.Chrome()
browser.get('http://sahitest.com/demo/clicks.htm')
# 模拟鼠标单击
ele = browser.find_element_by_xpath('/html/body/form/input[3]')
ActionChains(browser).click(ele).perform()
# 模拟鼠标双击
ele = browser.find_element_by_xpath('/html/body/form/input[2]')
ActionChains(browser).double_click(ele).perform()
# 模拟鼠标右键
ele = browser.find_element_by_xpath('/html/body/form/input[4]')
ActionChains(browser).context_click(ele).perform()
# 模拟鼠标指针悬浮操作
browser.get('http://sahitest.com/demo/mouseover.htm')
ele = browser.find_element_by_xpath('/html/body/a[1]/span')
ActionChains(browser).move_to_element(ele).perform()
time.sleep(2)
ele = browser.find_element_by_xpath('/html/body/form/input[1]')
ActionChains(browser).move_to_element(ele).perform()
time.sleep(2)
ele = browser.find_element_by_xpath('/html/body/form/input[2]')
ActionChains(browser).move_to_element(ele).perform()
time.sleep(2)
# 模拟鼠标拖动
browser.get('http://sahitest.com/demo/dragDropMooTools.htm')
source = browser.find_element_by_xpath('//*[@id="dragger"]')
target = browser.find_element_by_xpath('/html/body/div[4]')
ActionChains(browser).drag_and_drop(source, target)
time.sleep(2)
browser.quit()
模式键盘操作
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
# 声明要模拟的浏览器是谷歌浏览器
browser = webdriver.Chrome()
# 在浏览器中打开指定网址
browser.get("https://www.baidu.com/")
# 使用XPath法选择元素
browser.find_element_by_xpath('//*[@id="kw"]').send_keys('python')
time.sleep(5)
# 保存图片
browser.save_screenshot(browser.title + str(time.time()) + '.png')
# 模拟键盘操作 复制粘贴
browser.find_element_by_xpath('//*[@id="kw"]').send_keys(Keys.COMMAND, 'a')
browser.find_element_by_xpath('//*[@id="kw"]').send_keys(Keys.COMMAND, 'c')
browser.find_element_by_xpath('//*[@id="kw"]').clear()
time.sleep(2)
browser.find_element_by_xpath('//*[@id="kw"]').send_keys(Keys.COMMAND, 'v')
browser.find_element_by_xpath('//*[@id="kw"]').send_keys('教程')
time.sleep(2)
browser.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(5)
# 保存图片
browser.save_screenshot(browser.title + str(time.time()) + '.png')
browser.quit()
\