关于selenium各种操作语句(方便查询便携版)

server/2024/11/9 16:35:42/
python">定位方法 #功能from selenium import webdriver#载入驱动
from selenium.webdriver.common.by import By
#新版载入by,旧版的find_element_by_id语句一般会被划掉,然后给你提示说语句已淘汰,不过目前还是可以运行,只是代码不好看。#启动驱动的两种写法:
with webdriver.Chrome() as driverdriver=chromedriver.chrome()#八大基础定位
find_element(By.ID,'value')	#定位ID
find_element(By.NAME,'value')	#定位name
find_element(By.CLASS_NAME,'value')	#定位class
find_element(By.TAG_NAME,'value')	#定位tag功能标签
find_element(By.LINK_TEXT,'value')	#定位link
find_element(By.PARTIAL_LINK_TEXT,'value')	#定位局部link,模糊查找
find_element(By.CSS_SELECTOR,'value')	#定位CSS多属性组合
find_element(By.XPATH,'value')	#定位多属性组合#上下左右模糊定位法
above()	#定位到现元素上面的元素
below()	#定位到现元素下面的元素
toLeftOf()	#定位到现元素左面的元素
tpRightOf()	#定位到现元素右面的元素
near()	#定位到最多距现元素50个像素远的元素#输入、拖放、点击
find_element().send_keys("内容")	#定位并输入文本"source = driver.find_element(By.ID, ""source"")
target = driver.find_element(By.ID, ""target"")
ActionChains(driver).drag_and_drop(source, target).perform()"	#拖放功能find_element().click()	#定位并点击#创建、打开、网址、前进、后退、刷新以及读取页面标题
driver = webdriver.Chrome()	#创建Chrome浏览器对象
driver.get("https://example.org") 	#打开网页
driver.current_url	#获取当前网址
driver.back()	#按下浏览器的后退按钮
driver.forward()	#按下浏览器的前进按钮
driver.refresh()	# 刷新当前网页
driver.title	#从浏览器中读取当前页面标题#handle、跳转、关闭、退出、嵌网操作
driver.current_window_handle	#当打开一个新窗口时,获取该窗口的处理权"find_element().click()
driver.switch_to.window(window_handle)"	#当点击一个链接跳转到新窗口时,需要switch到新窗口"driver.switch_to.new_window('tab')
driver.switch_to.new_window('window')"	#创建新窗口并switch"driver.close()
driver.switch_to.window(original_window)"	#关闭一个窗口或tabdriver.quit()	#退出浏览器driver.switch_to.frame(1)	#Frames和Iframes,点击iframes中的按钮driver.switch_to.default_content()	#退出一个frame或frameset#窗口大小、位置、最大化、最小化、全屏
"size = driver.get_window_size()
width1 = size.get(""width"")
height1 = size.get(""height"")  "	#获取窗口大小driver.set_window_size(1024, 768)	#设置窗口大小"position = driver.get_window_position()
x1 = position.get('x')
y1 = position.get('y') "	#获得窗口位置driver.set_window_position(0, 0)	#设置窗口位置driver.maximize_window()	#最大化窗口driver.minimize_window()	#最小化窗口driver.fullscreen_window()	#窗口全屏#网页加载等待,还有一种流式等待没搞懂,这里忽略
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC#条件等待
"WebDriverWait(driver, timeout=3).until(some_condition) "	#显式等待网页加载完成
driver.implicitly_wait(10)	#隐式等待#警报处理、处理确认和处理提示
"river.find_element(By.LINK_TEXT, ""See an example alert"").click()
alert = wait.until(expected_conditions.alert_is_present())
text = alert.text
alert.accept()"	#处理警报"driver.find_element(By.LINK_TEXT, ""See a sample confirm"").click()
wait.until(expected_conditions.alert_is_present())
alert = driver.switch_to.alert
alert.dismiss()"	#处理确认"driver.find_element(By.LINK_TEXT, ""See a sample prompt"").click()
wait.until(expected_conditions.alert_is_present()
alert = Alert(driver)
alert.send_keys(""Selenium"")
alert.accept()"	#处理提示#HTTP代理
"PROXY = ""<HOST:PORT>""
webdriver.DesiredCapabilities.CHROME['proxy'] = {""httpProxy"": PROXY,""ftpProxy"": PROXY,""sslProxy"": PROXY,""proxyType"": ""MANUAL"",}"	#Http代理#三种加载方式
from selenium.webdriver.chrome.options import Options#载入optiions
options.page_load_strategy = 'normal'	#normal(网页完全加载)
options.page_load_strategy = 'eager'	#eager(只加载主页面,忽略表格、图像和子框架)
options.page_load_strategy = 'none'	#none(仅加载主页面)#镶嵌查找,叠中叠
driver.find_element(By.NAME, "q")	#查找元素"for e in elements:print e.text  "	#查找多元素变量.find_element(By.NAME, "q")	#从元素下查找单个元素"elements = element.find_elements(By.TAG_NAME, 'p')for e in elements:print e.text "	#从元素下查找多个元素"driver.find_element(By.CSS_SELECTOR, '[name=""q""]').send_keys(""webElement"")
river.switch_to.active_element.get_attribute(""title"")print attr"	#获取当前锚定元素#键盘组合操作
from selenium.webdriver.common.keys import Keys#载入keydriver.find_element(By.NAME, "q").send_keys("webdriver" + Keys.ENTER)	
#sendKeys输入+enter"driver.find_element(By.NAME, ""q"").send_keys(""webdriver"" + Keys.ENTER)
webdriver.ActionChains(driver).key_down(Keys.CONTROL).send_keys(""a"").perform()"	#keyDown 输入+enter,再ctrl+aaction.key_down(Keys.SHIFT).send_keys_to_element(search, "qwerty").key_up(Keys.SHIFT).send_keys("qwerty").perform()	#keyUp长按.Clear()	#clear清除内容

参考原文如下,有需要请转原文链接,写得很详细,本文主要为便捷查询所用,偏简略。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/whitedrogen/article/details/106216401


http://www.ppmy.cn/server/17941.html

相关文章

【机器学习】各大模型原理简介

目录 ⛳️推荐 前言 一、神经网络&#xff08;联结主义&#xff09;类的模型 二、符号主义类的模型 三、决策树类的模型 四、概率类的模型 五、近邻类的模型 六、集成学习类的模型 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风…

Linux--内核移植(一)Kernel编译启动

Linux内核编译 编译内核之前需要先在ubuntu上安装lzop库&#xff0c;另外&#xff0c;图形化配置工具还需要ncurses库支持&#xff0c;安装命令为&#xff1a; sudo apt-get install lzop sudo apt-get install build-essential sudo apt-get install libncurses5-dev 在U…

orbslam2+kitti数据集序列图像

文章目录 一、下载ORB Slam2依赖二、安装编译ORB_SLAM2三 、运行Kitee数据集3.1 数据集准备3.2 启动&#xff01;&#xff01;&#xff01; 安装ORB Slam2遇到的问题总结参考资料 一、下载ORB Slam2依赖 Orb Slam2 需要下载的依赖项&#xff1a; Pangolin0.5 、Eigen3.1以上、…

Axure实现tab页面切换功能

1. 实现效果 2. 实现原理 创建两个标签&#xff0c;并实现点击时选中状态点击时&#xff0c;设置面板状态 3. 实现步骤 3.1 实现可切换的标签 在页面上拖拽两个矩形作为两个tab标签&#xff0c;并命名 tab1 和 tab2 设置每个矩形的边框显示&#xff0c;只显示下边框即可 …

Vuforia AR篇(四)— AR虚拟按钮

目录 前言一、创建虚拟按钮二、创建脚本三、效果 前言 在当今互联网和移动设备普及的背景下&#xff0c;**增强现实&#xff08;AR&#xff09;**技术正迅速成为连接现实世界与数字信息的重要桥梁。AR虚拟按钮作为这一技术的创新应用&#xff0c;不仅提供了一种全新的用户交互…

【CSS】使用 scroll snap 实现页面的垂直大屏滚动

CSS 属性 scroll-snap-type 设置了在有滚动容器的情形下吸附至吸附点的严格程度。 scroll-snap-type 使用 scroll snap 也可以用于垂直滚动&#xff0c;全屏展示就是一个很好的例子: <main><section class"section section-1"></section><sect…

了解时间复杂度和空间复杂度

在学习数据结构前&#xff0c;我们需要了解时间复杂度和空间复杂度的概念&#xff0c;这能够帮助我们了解数据结构。 算法效率分为时间效率和空间效率 时间复杂度 一个算法的复杂度与其执行的次数成正比。算法中执行基础操作的次数&#xff0c;为算法的时间复杂度。 我们采…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数&#xff0c;如何利用&#xff1f; 好好好&#xff0c;终于到了这种有后门函数的了 checksec 检查一下&#xff1a; 32 位程序&#xff0c;RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…