美文网首页Selenium_博客已迁移selenium + python专题
selenium瀏覽器自動化1 - 建置python3+sele

selenium瀏覽器自動化1 - 建置python3+sele

作者: Maliao | 来源:发表于2018-05-29 15:24 被阅读5次

    python要使用selenium可以直接安裝依賴模塊selenium進行操作,需要注意的是selenium操作瀏覽器是有版本支援問題的,以下為簡要說明:

    slenium2 可直接操作firefox46以下,並可直接調用不須另外使用webdriver驅動,最好用的是原生支持全屏截圖。其他瀏覽器不能直接調用,需要使用webdriver驅動。

    slenium3 基本都需要webdriver驅動,並且還需留意瀏覽器與webdriver版本問題,如下:

    Chrome:
    ChromeDriver地址
    Chrome browser歷史版本(各系統)

    下載地址會說明支持對應版本
    Chrome 65-67 使用 ChromeDriver 2.38
    Chrome 63-65 使用 chromedriver 2.36
    Chrome 62-64 使用 chromedriver 2.35
    Chrome > 41, 使用 chromedriver 2.15

    Firefox:

    geckodriver
    Firefox 歷史版本 阿榮免安裝
    Firefox 歷史版本

    留意selenum版本對應問題
    Firefox < 46.1, 使用 Selenium 2.53.1
    FirefoxPortable 46
    Firefox >= 47, 使用 Selenium 3.0.1 需加上geckodriver

    Opera:

    operachromiumdriver
    Opera browser歷史版本(各系統)

    下載地址會說明支持對應版本
    Opera 53 使用 operachromiumdriver 2.36
    Opera 52 使用 operachromiumdriver 2.35

    環境

    1. python selenium

      pip install selenium 
      
    2. browser

      以Opera為例:

    3. webdriver

      操作瀏覽器之前,必須先有webdriver

      opera chromium driver

      我安裝的opera52版的瀏覽器,webdriver也要找對應支持的。
      [图片上传失败...(image-87352d-1527664838477)]

      如何安裝:

      1. 下載對應webdriver
      2. 將下載好的webdriver加到環境變數中

    當然,可以將會用到的webdriver都放在c:\webdriver中。

    image

    在將c:\webdriver整個資料夾加到環境變量中,如果有更新webdriver的需求也比較好整理。

    image

    啟動

    selenium2、3調用上並沒有太大區別。

    一般創建實例

    看到browser成功啟動,就說明webdriver成功驅動browser。

    from selenium import webdriver
    
    Firefox = webdriver.Firefox()
    Chrome = webdriver.Chrome()
    

    使用者插件

    selenium也可以直接調用包含使用者紀錄或插件(如:檔廣告)的browser。

    • Firefox
    from selenium import webdriver
    
    url = "https://mail.google.com"
    fp = webdriver.FirefoxProfile('/Users/<username>/Library/Application Support/Firefox/Profiles/71v1uczn.default')
    
    driver = webdriver.Firefox(fp)
    driver.get(url)
    
    • Remote Firefox

    如使用selenium server可以參考

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
    import time
    
    # 本機firefox設定檔路經
    profile = FirefoxProfile('/home/user/.mozilla/firefox/089njn4b.default')
    
    browser = webdriver.Remote(
                command_executor='http://127.0.0.1:4446/wd/hub',
                desired_capabilities=DesiredCapabilities.FIREFOX,
                browser_profile=profile)
    
    • Chrome
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = webdriver.ChromeOptions() 
    options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile
    w = webdriver.Chrome(executable_path="C:\\Users\\chromedriver.exe", chrome_options=options)
    

    指定webdriver路徑

    webdriver不希望加入環境變量,也可以直接指定路徑調用。

    from selenium import webdriver
    path = "/opt/webdriver/chromedriver.exe"
    Chrome = webdriver.Chrome(path)
    

    指定chrome主程序目錄

    • Firefox
    from selenium import webdriver
    
    from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
    
    binary = FirefoxBinary("C:\Users\LENOVO\FirefoxPortable.exe")
    driver = webdriver.Firefox(firefox_binary=binary)
    
    • Chrome
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    opts = Options()
    opts.binary_location = chromium_path
    driver = webdriver.Chrome(chrome_options=opts)
    
    

    使用

    進入資策會網站,搜索後離開網頁。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Date    : 2018-05-16 08:33:47
    # @Author  : Maliao
    # @Link    : None
    
    
    from selenium import webdriver
    
    browser = webdriver.Chrome()  # 調用webdriver
    
    browser.get("https://w3.iiiedu.org.tw/")  # 訪問 資策會網站
    
    browser.find_element_by_id("LongTerm").click()  # 點擊ID "LongTerm" 專長養成班
    
    browser.find_element_by_id("searchInput").send_keys("python")  # 搜索框輸入:"python"
    
    browser.find_element_by_id("searchBtn").click()  # 提交搜尋
    
    browser.save_screenshot("iiiedu.png")  # 螢幕截圖
    
    browser.quit()  # 離開瀏覽器
    
    
    image

    相关文章

      网友评论

        本文标题:selenium瀏覽器自動化1 - 建置python3+sele

        本文链接:https://www.haomeiwen.com/subject/qwkajftx.html