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

定位方法 #功能

from selenium import webdriver#载入驱动
from selenium.webdriver.common.by import By
#新版载入by,旧版的find_element_by_id语句一般会被划掉,然后给你提示说语句已淘汰,不过目前还是可以运行,只是代码不好看。

#启动驱动的两种写法:
with webdriver.Chrome() as driver

driver=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)"	#关闭一个窗口或tab

driver.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#载入key

driver.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+a

action.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

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值