selenium学习笔记

官方api:http://selenium-python.readthedocs.io/api.html#

1、访问网页

from selenium import webdriver
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
brower.get('https://taobao.com')
print(brower.page_source)    #输出源代码
brower.close()    #关闭浏览器
2、查找单个元素

from selenium import webdriver
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
brower.get('https://taobao.com')
#id='q'是搜索框
#通过id选择元素
input_first=brower.find_element_by_id('q')
#通过css选择器选择元素
input_second=brower.find_element_by_css_selector('#q')
#通过xpath选择元素
input_third=brower.find_element_by_xpath('//*[@id="q"]')
#这三个结果一样
print(input_first,input_second,input_third)
brower.close()
#查找方式有很多种
brower.find_element_by_name()
brower.find_element_by_xpath()
brower.find_element_by_id()
brower.find_element_by_css_selector()
brower.find_element_by_link_text()
brower.find_element_by_tag_name()
(2)通用的查找元素

from selenium import webdriver
from selenium.webdriver.common.by import By
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
brower.get('https://taobao.com')
input=brower.find_element(By.ID,'q')   #By后面可换查找的类型
print(input)
brower.close()
3.查找多个元素

上诉的element更改为elements

4、对获取的元素调用交互方法

from selenium import webdriver
import time
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
brower.get('https://taobao.com')
input=brower.find_element_by_id('q')    #指定搜索框
input.send_keys('iPhone')    #搜索iphone
time.sleep(1)    #等待1input.clear()    #清空搜索框
input.send_keys('iPad')    #搜索ipad
button=brower.find_element_by_class_name('btn-search')   #btn-search是搜索按钮
button.click()    #点击按钮

5、将动作附加到动作链中串行执行(自动实现拖、拽)

from selenium import webdriver
from selenium.webdriver import ActionChains
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
url='http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'
brower.get(url)
brower.switch_to_frame('iframeResult') #切换到fram,模拟拖拽
sourse=brower.find_element_by_css_selector('#draggable')#被拖拽的对象
target=brower.find_element_by_css_selector('#droppable')#拖拽的目标
actions=ActionChains(brower)#动作对象
actions.drag_and_drop(sourse,target)#进行拖拽
actions.perform()#执行动作

更多操作: http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains

6、执行JavaScript(没有提供api如:实现进度条下拉),用js语言代替相关的api,相当于万能语言,可在网页上执行任何操作

from selenium import webdriver
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
url='https://www.zhihu.com/explore'
brower.get(url)
#下拉条拉倒最底层
brower.execute_script('window.scrollTo(0,document.body.scrollHeight)')
#显示提示框
browe
7、获取元素信息:属性

from selenium import webdriver
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
url='https://www.zhihu.com/explore'
brower.get(url)
#获取知乎logo图标的链接与class属性
logo=brower.find_element_by_id('zh-top-link-logo')
print(logo)
print(logo.get_attribute('class'))
8、获取元素信息:文本

from selenium import webdriver
#声明浏览器对象,使用ie浏览器
brower=webdriver.Ie()
url='https://www.zhihu.com/explore'
brower.get(url)
input=brower.find_element_by_class_name('zu-top-add-question')
print(input.text)
获取id:input.id        获取在浏览器位置:input.location      获取标签的名字:input.tag_name     

9、等待:隐式等待:当查找元素或元素没有立即出现的时候,隐式等待将等待一段时间再查找DOM,默认的时间为0(网速比较慢的时候)

brower=webdriver.Ie()

brower.implicitly_wait(10)#等待10秒

brower.get(url)

10、显示等待

rom selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from  selenium.webdriver.support.wait import WebDriverWait

brower=webdriver.Ie()
url='https://www.taobao.com'
brower.get(url)
wait=WebDriverWait(brower,10)  #传入对象和等待时间
input=wait.until(EC.presence_of_element_located((By.ID,'q')))  #传入等待条件
#判断条件是否可点击
button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.btn-search')))
print(input,button)

11、控制网页的前进后退

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from  selenium.webdriver.support.wait import WebDriverWait

brower=webdriver.Ie()
brower.get('https://www.baidu.com')
brower.get('https://www.taobao.com')
brower.back()  #后退
time.sleep(1)
brower.forward()    #前进
brower.close() 
12、选项卡的管理,包括添加,返回

import time
from selenium import webdriver

browser=webdriver.Ie()
browser.get('https://www.baidu.com')
browser.execute_script('window.open()')    #添加选项卡
browser.switch_to_window(browser.window_handles[1])#切换到第2个选项卡
browser.get('https://www.taobao.com')
time.sleep(1)
browser.switch_to_window(browser.window_handles[0])#切换到第一个选项卡
browser.get('https://python.org')






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值