selenium学习笔记

selenium学习

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

browser = webdriver.Chrome()
#声明浏览器对象为谷歌浏览器
try:
    browser.get('https://www.baidu.com')
    #以百度为例用get方法请求网页
    input = browser.find_element_by_id('kw')
    #查找节点
    input.send_keys('Python')
    #在节点输入文字Python
    input.send_keys(Keys.ENTER)
    #搜素
    wait = WebDriverWait(browser,10)
    #设定等待方法为显示等待,等待时间10s
    wait.until(EC.presence_of_element_located((By.ID,'content_left')))
    #等待条件为presence_of_element_located,即节点出现
    print(browser.current_url)
    print(browser.get_cookies())
    print(browser.page_source)
    #输出结果
finally:
    browser.close()

selenium获取节点的方法

find_element(s)_by_id
find_element(s)_by_name
find_element(s)_by_xpath
find_element(s)_by_link_text
find_element(s)_by_partial_link_text
find_element(s)_by_tag_name
find_element(s)_by_class_name
find_element(s)_by_css_selector

Selenium的通用方法是find _element(查找方式by,值)。比如find element_by_id(id)等价于find_element(By.ID,id)

find_element()用于查找单个节点,find_elements用于查找多个节点

节点交互

send_keys()输入搜素内容
clear()清空文字
click()点击按钮

from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')
input.send_keys('iPhone')
time.sleep(1)
input.clear()
input.send_keys('iPad')
button = browser.find_element_by_class_name('btn-search')
button.click()

动作链

......#省略赋值及引用模块部分
actions = ActionChains(browser)
#声明ActionChains()对象赋值给actions
actions.drag_and_drop(A,B)
actiaons.perform()
#实现从A到B拖拽操作

其他要点

  1. execute_script()方法可以实现进度条下拉到最底部,模拟运行JS
  2. page_source属性可以获取网页源代码
  3. get_attribute()方法可以获取节点属性.例:print(A.get_attribute(‘B’))
  4. text属性是获取每个WebElement节点的文本信息,相当于bs4的get_text()方法,pyquery的text()方法
  5. id属性,获取节点ID
  6. location属性,获取该节点在页面中的相对位置
  7. tag_name属性,获取标签名称
  8. size属性,获取节点大小
  9. switch_to.frame()和switch_to.parent_frame()方法,切换Frame
  10. browser.implicitly_wait(10)方法,设定隐式等待
  11. back()和forward()方法,访问前进和后退
  12. browser.add_cookie()和browser.delete_all_cookies()方法,增删cookies
  13. switch_to_window()方法切换选项卡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值