键盘事件
| 键盘事件 | 代码实现 |
| — | — |
| TAB | send_keys(Keys.TAB) |
| ENTER | send_keys(Keys.ENTER) |
| BackSpace | send_keys(Keys.BackSpace) |
| Space | send_keys(Keys.Space) |
| Esc | send_keys(Keys.Esc) |
| F1 | send_keys(Keys.F1) |
| F12 | send_keys(Keys.F12) |
| 全选 | send_keys(Keys.CONTROL,‘a’) |
| 复制 | send_keys(Keys.CONTROL,‘c’) |
| 剪切 | send_keys(Keys.CONTROL,‘x’) |
| 粘贴 | send_keys(Keys.CONTROL,‘v’) |
鼠标事件
鼠标事件能够用于执行所有鼠标能够完成的操作。
鼠标事件
| 鼠标事件 | 代码实现 |
| — | — |
| 执行ActionChains中的操作 | perform( ) |
| 右击 | content_click( ) |
| 双击 | double_click( ) |
| 拖动 | drag_and_drop( ) |
| 鼠标悬停 | move_to_element( ) |
窗口、框架切换
当打开多个网页时,利用窗口、框架切换方法可以切换显示网页。
窗口切换
获取断言信息
image
cookie操作
3.selenium应用于爬虫
selenium应用于爬虫,主要是为了解决scrapy无法解决的问题:获取JavaScrapt渲染后的页面HTML代码。
在之前讲解scrapy库的文章中,我们了解到引擎于爬虫之间存在一个下载器中间件,scrapy就是通过这种下载器中间件来下载网页源码的;但面对JavaScrapt渲染的网页,这个下载器中间件就无能为力了,这时selenium就起到了替代下载器中间件的作用。
selenium在爬虫中的主要应用流程如下图:
image
“”“苏宁易购查找iphone”“”
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver
driver = webdriver.Edge(executable_path=‘msedgedriver.exe’)
driver.get(‘https://www.suning.com’)
input = driver.find_element_by_id(‘searchKeywords’)
input.clear
input.send_keys(‘iphone’)
input.send_keys(Keys.RETURN)
wait = WebDriverWait(driver,10)
wait.until(EC.presence_of_element_located((By.CLASS_NAME,‘root990’)))
print(driver.page_source)
“”“自动下拉页面”“”
from selenium import webdriver
import time
driver = webdriver.Edge(executable_path=‘msedgedriver.exe’)
driver.get(‘https://www.suning.com/’)
time.sleep(4)
input = driver.find_element_by_id(‘searchKeywords’)
input.clear
input.send_keys(‘iphone’)
input.send_keys(Keys.RETURN)
driver.execute_script(‘window.scrollTo(0,document.body.scrollHeight)’)
“”“定位元素”“”
from selenium import webdriver
driver = webdriver.Edge(executable_path=‘msedgedriver.exe’)
driver.get(‘https://www.suning.com/’)
input_id = driver.find_element_by_id(‘searchKeywords’)
input_name = driver.find_element_by_name(‘index1_none_search_ss2’)
input_xpath = driver.find_element_by_xpath(“//input[@id=‘searchKeywords’]”)
input_css = driver.find_element_by_css_selector(‘#searchKeywords’)
print(input_id,input_name,input_xpath,input_css)
“”“等待页面加载完成”“”
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
driver = webdriver.Edge(executable_path=‘msedgedriver.exe’)
#设置页面加载的超时时间
driver.set_page_load_timeout(5)
try:
driver.get(‘https://www.suning.com/’)
driver.execute_script(‘window.scrollTo(0,document.body.scrollHeight)’)
print(driver.page_source)
except TimeoutException:
print(‘timeout’)
driver.quit()
“”“隐式等待”“”
from selenium import webdriver
driver = webdriver.Edge(executable_path=‘msedgedriver.exe’)
driver.implicitly_wait(5)
driver.get(“https://www.suning.com/”)
print(driver.page_source)
“”“显示等待”“”
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
driver = webdriver.Edge(executable_path=‘msedgedriver.exe’)
driver.get(‘https://www.suning.com/’)
try:
input = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,“searchKeywords”)))
print(input)
except TimeoutException:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)