最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Selenium的使用詳解

 更新時間:2018年10月19日 09:36:58   作者:回憶不說話  
今天小編就為大家分享一篇關(guān)于Selenium的使用詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

先來看一下功能實現(xiàn),代碼如下:

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')
  input = browser.find_element_by_id('kw')
  input.send_keys('Python')
  input.send_keys(Keys.ENTER)
  wait = WebDriverWait(browser,10)
  wait.until(EC.presence_of_element_located((By.ID,'content_left')))
  print(browser.current_url)
  print(browser.get_cookies())
  print(browser.page_source)
finally:
  browser.close()

可以看到打開了百度網(wǎng)站,查詢了“Python”并且輸出了當前的url,cookies還有網(wǎng)頁源代碼。

下面再來介紹詳細功能。

1、聲明瀏覽器對象。

browser = webdriver.Chrome()
browser = webdriver.Firefox()

瀏覽器的對象初始化,并將其賦值給browser對象。

2.以淘寶為例,請求網(wǎng)頁。

browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
print(browser.page_source)
browser.close()

可以看到輸出了淘寶的源碼,隨后關(guān)閉。

3.查找節(jié)點

單個節(jié)點

提取搜索框這個節(jié)點

檢查搜索框如下:

查找搜索框:

browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
# 通過id查找
input_first = browser.find_element_by_id('q')
# 通過css查找
input_second = browser.find_element_by_css_selector('#q')
# 通過xpath查找
input_third = browser.find_element_by_xpath('//*[@id="q"]')
print(input_first,input_second,input_third)
browser.close()
# 查找單個節(jié)點的方法
find_element_by_id
find_element_by_name
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector

通用方法查找:

browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input_first = browser.find_element(By.ID,'q')
print(input_first)
browser.close()
  • find_element()里面需要兩個參數(shù),查找方式By和值,
  • 例如:find_element(By.ID,'q')  通過查找ID的當時,查找id為q。

多個節(jié)點:

例如左側(cè)的導航條所有條目:

browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
lis = browser.find_elements_by_css_selector('.service-bd li')
print(lis)
browser.close()

獲取多個節(jié)點的方法:

find_elements_by_id
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector

通用方法在這里同樣適用。

4、節(jié)點交互

import time
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
input = browser.find_element_by_id('q')
# 輸入文字用send_keys()
input.send_keys('ipone')
time.sleep(1)
#清空文字用clear()
input.clear()
input.send_keys('ipad')
button = browser.find_element_by_class_name('btn-search')
#點擊
button.click()

5、動作鏈

from selenium import webdriver
from selenium.webdriver import ActionChains
browser = webdriver.Chrome()
url = 'http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable'
browser.get(url)
browser.switch_to.frame('iframeResult')
#找到被拖拽的標簽
source = browser.find_element_by_css_selector('#draggable')
#找到拖拽目的地的標簽
target = browser.find_element_by_css_selector('#droppable')
actions = ActionChains(browser)
actions.drag_and_drop(source,target)
actions.perform()

運行結(jié)果如下:

6、執(zhí)行JavaScript

例如下拉進度條,可以直接模擬運行JavaScript,適用execute_script()即可實現(xiàn)

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.execute_script('alert("To Bottom")')

將滾動條拉到底部,執(zhí)行結(jié)果如下:

7、獲取節(jié)點信息

獲取屬性

代碼如下:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
logo = browser.find_element_by_id('zh-top-link-logo')
print(logo)
# 獲取class屬性
print(logo.get_attribute('class'))

獲取文本值

代碼如下:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name('zu-top-add-question')
print(input.text)

輸出結(jié)果如下:

獲取id、位置、標簽名和大小

以上面的標簽為例:

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name('zu-top-add-question')
print(input.id)
# 輸出位置
print(input.location)
#標簽名
print(input.tag_name)
#大小
print(input.size)

輸出結(jié)果:

8、界面切換

代碼如下:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
browser = webdriver.Chrome()
browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
#界面切換到子界面
browser.switch_to.frame('iframeResult')
try:
  # 查找logo
  logo = browser.find_element_by_class_name('logo')
except NoSuchElementException:
  print('NO LOGO')
  # 界面切換到父級界面
browser.switch_to.parent_frame()
# 查找logo
logo = browser.find_element_by_class_name('logo')
print(logo)
print(logo.text)

9、延時等待

隱式等待

當selenium沒有在DOM中找到節(jié)點,繼續(xù)等待,超出設(shè)定時間,拋出異常

browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.get('https://www.zhihu.com/explore')
input = browser.find_element_by_class_name('zu-top-add-question')
print(input)

顯式等待

指定要查找的節(jié)點,然后指定一個最長等待時間,如果在規(guī)定時間內(nèi)加載出來節(jié)點,返回節(jié)點,如果超出規(guī)定時間,拋出異常。

browser = webdriver.Chrome()
browser.get('https://www.taobao.com/')
wait = WebDriverWait(browser,10)
input = wait.until(EC.presence_of_element_located((By.ID,'q')))
# 節(jié)點可點擊
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.btn-search')))
print(input,button)

10、Cookies

browser = webdriver.Chrome()
browser.get('https://www.zhihu.com/explore')
# 獲取cookies
print(browser.get_cookies())
# 添加cookie
browser.add_cookie({'name':'name','domin':'www.zhihu.com','value':'germey'})
print(browser.get_cookies())
# 刪除所有的cookies
browser.delete_all_cookies()
print(browser.get_cookies())

輸出結(jié)果:

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Python和OpenCV進行多尺度模板匹配實現(xiàn)

    Python和OpenCV進行多尺度模板匹配實現(xiàn)

    本文將實現(xiàn)如何將標準模板匹配擴展到多尺度,使其可以處理模板和輸入圖像大小不同的匹配。具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 編寫Python腳本批量下載DesktopNexus壁紙的教程

    編寫Python腳本批量下載DesktopNexus壁紙的教程

    這篇文章主要介紹了編寫Python腳本批量下載DesktopNexus壁紙的教程,相較于普通的爬蟲抓取,本文的下載壁紙教程還包括了設(shè)置所要下載的分辨率等功能的實現(xiàn),需要的朋友可以參考下
    2015-05-05
  • Pycharm安裝python庫的方法

    Pycharm安裝python庫的方法

    這篇文章主要介紹了Pycharm安裝python庫的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • python?peewee操作sqlite鎖表的問題分析

    python?peewee操作sqlite鎖表的問題分析

    Peewee是一種簡單而小的ORM,在使用python?orm?框架?peewee?操作數(shù)據(jù)庫時時常會拋出以一個異常,下面我們就來分享一下具體的原因以及解決辦法吧
    2023-08-08
  • Python中的xlrd模塊使用原理解析

    Python中的xlrd模塊使用原理解析

    這篇文章主要介紹了Python中的xlrd模塊原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Python OpenCV實現(xiàn)識別信用卡號教程詳解

    Python OpenCV實現(xiàn)識別信用卡號教程詳解

    本文將介紹如何通過 OpenCV 和 Python 使用模板匹配來執(zhí)行光學字符識別 (OCR),再應用我們的模板匹配 OCR 方法來識別信用卡類型以及 16 位信用卡數(shù)字。代碼具有一定價值,感興趣的童鞋可以了解一下
    2021-11-11
  • python如何通過openpyxl讀寫Excel文件

    python如何通過openpyxl讀寫Excel文件

    python操作excel的庫有很多,有的庫只能讀取xsl格式,比如xlrd庫,有的庫只能寫xsl格式,比如xlwt庫,有的只能讀寫xslx格式,比如openpyxl庫,綜合各庫及 xslx 格式比較常見,所以本文主要講解openpyxl庫對xslx格式的excel操作,需要的朋友可以參考下
    2023-10-10
  • 基于Python實現(xiàn)船舶的MMSI的獲取(推薦)

    基于Python實現(xiàn)船舶的MMSI的獲取(推薦)

    工作中遇到一個需求,需要通過網(wǎng)站查詢船舶名稱得到MMSI碼,網(wǎng)站來自船訊網(wǎng)。這篇文章主要介紹了基于Python實現(xiàn)船舶的MMSI的獲取,需要的朋友可以參考下
    2019-10-10
  • Python中日期和時間的用法超強總結(jié)

    Python中日期和時間的用法超強總結(jié)

    時間無疑是生活各個方面中最關(guān)鍵的因素之一,因此,記錄和跟蹤時間變得非常重要。在?Python?中,可以通過其內(nèi)置庫跟蹤日期和時間。今天我們來介紹關(guān)于?Python?中的日期和時間,一起來了解如何使用time和datetime模塊查找和修改日期和時間
    2022-10-10
  • python+excel接口自動化獲取token并作為請求參數(shù)進行傳參操作

    python+excel接口自動化獲取token并作為請求參數(shù)進行傳參操作

    這篇文章主要介紹了python+excel接口自動化獲取token并作為請求參數(shù)進行傳參操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論

鹤峰县| 梧州市| 东乌珠穆沁旗| 武山县| 白山市| 桐柏县| 汾西县| 水富县| 右玉县| 吴桥县| 海南省| 海兴县| 枣庄市| 杭锦旗| 恩施市| 滦平县| 鄂伦春自治旗| 当雄县| 车险| 栖霞市| 安仁县| 佛冈县| 和田县| 吐鲁番市| 察隅县| 余江县| 高唐县| 兴海县| 山阴县| 慈溪市| 东港市| 闽侯县| 黑河市| 双城市| 平谷区| 秦皇岛市| 霍林郭勒市| 独山县| 施秉县| 龙陵县| 涟源市|