营销型网站欣赏,wordpress mysql调整,网站定制开发怎么写,自己做菠菜网站【1】Selenium基础介绍
1.什么是selenium#xff1f;
#xff08;1#xff09;Selenium是一个用于Web应用程序测试的工具。 #xff08;2#xff09;Selenium 测试直接运行在浏览器中#xff0c;就像真正的用户在操作一样。 #xff08;3#xff09;支持通过各种driv…【1】Selenium基础介绍
1.什么是selenium
1Selenium是一个用于Web应用程序测试的工具。 2Selenium 测试直接运行在浏览器中就像真正的用户在操作一样。 3支持通过各种driverFirfoxDriverIternetExplorerDriverOperaDriverChromeDriver驱动 真实浏览器完成测试。 4selenium也是支持无界面浏览器操作的。
2.为什么使用selenium
模拟浏览器功能自动执行网页中的js代码实现动态加载
3.如何安装selenium
这里以操作谷歌浏览器为例首先需要下载谷歌浏览器驱动 驱动可以在http://chromedriver.storage.googleapis.com/index.html下载注意驱动的版本一定要与浏览器大版本一致哦。 114后chrome驱动下载地址https://googlechromelabs.github.io/chrome-for-testing/#stable
更多信息可以参考博文https://blog.csdn.net/J080624/article/details/78569422
Python安装selenium
pip install selenium4.selenium的使用步骤
导入from selenium import webdriver 创建谷歌浏览器操作对象
path 谷歌浏览器驱动文件路径
browser webdriver.Chrome(path)访问网址
url 要访问的网址
browser.get(url)【2】Selenium使用案例
① selenium的元素定位
元素定位自动化要做的就是模拟鼠标和键盘来操作来操作这些元素点击、输入等等。操作这些元素前首先要找到它们WebDriver提供很多定位元素的方法
# 根据id来找到对象
# button browser.find_element_by_id(su)
# print(button)# 根据标签属性的属性值来获取对象的
# button browser.find_element_by_name(wd)
# print(button)# 根据xpath语句来获取对象
# button browser.find_elements_by_xpath(//input[idsu])
# print(button)# 根据标签的名字来获取对象
# button browser.find_elements_by_tag_name(input)
# print(button)# 使用的bs4的语法来获取对象
# button browser.find_elements_by_css_selector(#su)
# print(button)# button browser.find_element_by_link_text(直播)
# print(button)② 访问元素信息
from selenium import webdriver
path chromedriver.exe
browser webdriver.Chrome(path)url http://www.baidu.com
browser.get(url)input browser.find_element_by_id(su)
# 获取标签的属性
print(input.get_attribute(class))
# 获取标签的名字
print(input.tag_name)# 获取元素文本
a browser.find_element_by_link_text(新闻)
print(a.text)③ 鼠标交互
事件
点击:click()
输入:send_keys()
后退操作:browser.back()
前进操作:browser.forword()
模拟JS滚动:
jsdocument.documentElement.scrollTop100000
browser.execute_script(js) 执行js代码
获取网页代码page_source
退出browser.quit()案例
from selenium import webdriver# 创建浏览器对象
path chromedriver.exe
browser webdriver.Chrome(path)# url
url https://www.baidu.com
browser.get(url)import time
time.sleep(2)# 获取文本框的对象
input browser.find_element_by_id(kw)# 在文本框中输入周杰伦
input.send_keys(周杰伦)time.sleep(2)# 获取百度一下的按钮
button browser.find_element_by_id(su)# 点击按钮
button.click()time.sleep(2)# 滑到底部
js_bottom document.documentElement.scrollTop100000
browser.execute_script(js_bottom)time.sleep(2)# 获取下一页的按钮
next browser.find_element_by_xpath(//a[classn])# 点击下一页
next.click()time.sleep(2)# 回到上一页
browser.back()time.sleep(2)# 回去
browser.forward()time.sleep(3)# 退出
browser.quit()【3】Phantomjs(基本被淘汰)
1.什么是Phantomjs
1是一个无界面的浏览器 2支持页面元素查找js的执行等 3由于不进行css和gui渲染运行效率要比真实的浏览器要快很多
2.如何使用Phantomjs
1获取PhantomJS.exe文件路径path 2browser webdriver.PhantomJS(path) 3browser.get(url)
下载地址https://phantomjs.org/download.html 扩展保存屏幕快照:browser.save_screenshot(baidu.png)
from selenium import webdriverpath phantomjs.exebrowser webdriver.PhantomJS(path)url https://www.baidu.com
browser.get(url)browser.save_screenshot(baidu.png)import time
time.sleep(2)input browser.find_element_by_id(kw)
input.send_keys(昆凌)time.sleep(3)browser.save_screenshot(kunling.png)
【4】Chrome handless
Chrome-headless 模式 Google 针对 Chrome 浏览器 59版 新增加的一种模式可以让你不打开UI界面的情况下使用 Chrome 浏览器所以运行效果与 Chrome 保持完美一致。
配置
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options Options()
chrome_options.add_argument(‐‐headless)
chrome_options.add_argument(‐‐disable‐gpu)path rC:\Program Files (x86)\Google\Chrome\Application\chrome.exe
chrome_options.binary_location pathbrowser webdriver.Chrome(chrome_optionschrome_options)browser.get(http://www.baidu.com/)封装的handless
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef share_browser():chrome_options Options()chrome_options.add_argument(--headless)chrome_options.add_argument(--disable-gpu)# path是你自己的chrome浏览器的文件路径path rC:\Program Files (x86)\Google\Chrome\Application\chrome.exechrome_options.binary_location pathbrowser webdriver.Chrome(chrome_optionschrome_options)return browserbrowser share_browser()url https://www.baidu.combrowser.get(url)