PYthon Selenium 爬虫 操作浏览器

本篇文章并非原创,转载selenium_python系列之二 Python启动浏览器Firefox\Chrome\IE ,仅作为记录,以供学习!

-- coding:utf-8 --

import os
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

"""
练习启动各种浏览器:Firefox, Chrome, IE
练习启动各种浏览器的同时加载插件:Firefox, Chrome, IE
"""

def startFirefox():
    """启动安装在默认位置的Firefox浏览器,并自动转到 百度 首页"""
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    assert("百度" in driver.title)
    elem = driver.find_element_by_name("wd")
    elem.send_keys("selenium")
    elem.send_keys(Keys.RETURN)
    assert "百度" in driver.title
    driver.close()
    driver.quit()
    driver = None

def startFirefoxWithSpecificLocation():
    """启动安装在 非 默认位置的Firefox浏览器,并自动转到 百度 首页"""
    firefoxBin = os.path.abspath(r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    os.environ["webdriver.firefox.bin"] = firefoxBin

    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    assert("百度" in driver.title)
    elem = driver.find_element_by_name("wd")
    elem.send_keys("selenium")
    elem.send_keys(Keys.RETURN)
    assert "百度" in driver.title
    driver.close()
    driver.quit()
    driver = None


def startChrome():
    """启动Chrome浏览器,并自动转到 百度 首页
    启动Chrome浏览器需要指定驱动的位置
    """
    chrome_driver = os.path.abspath(r"D:\云盘\360云\360云盘\我的自动双向同步文件夹\01-PersonalInfo\DataGuru\12-软件自动化测试Selenium2\1-课程\练习代码_Python版本\Selenium_python\Files\chromedriver.exe")
    os.environ["webdriver.chrome.driver"] = chrome_driver

    driver = webdriver.Chrome(chrome_driver)
    driver.get("http://www.baidu.com")
    assert("百度" in driver.title)
    elem = driver.find_element_by_name("wd")
    elem.send_keys("selenium")
    elem.send_keys(Keys.RETURN)
    assert "百度" in driver.title
    driver.close()
    driver.quit()
    driver = None

def startIE():
    """启动IE浏览器,并自动转到 百度 首页
    启动 IE 浏览器需要指定驱动的位置
    """
    ie_driver = os.path.abspath(r"D:\云盘\360云\360云盘\我的自动双向同步文件夹\01-PersonalInfo\DataGuru\12-软件自动化测试Selenium2\1-课程\练习代码_Python版本\Selenium_python\Files\IEDriverServer.exe")
    os.environ["webdriver.ie.driver"] = ie_driver

    driver = webdriver.Ie(ie_driver)
    driver.get("http://www.python.org")
    assert("Python" in driver.title)
    elem = driver.find_element_by_id("id-search-field")
    elem.send_keys("selenium")
    '''
    elem.send_keys(Keys.RETURN)
    assert "百度" in driver.title
    driver.close()
    driver.quit()
    driver = None    
    ''' 


def start_firefox_with_firebug_plug():
    """启动Firefox,并自动加载插件Firebug"""
    firefoxBin = os.path.abspath(r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    os.environ["webdriver.firefox.bin"] = firefoxBin

    firefoxProfile = webdriver.FirefoxProfile()
    tempDir = os.getcwd()
    tempDir = os.path.split(tempDir)[0]
    firebugPlugFile = os.path.join(os.path.join(tempDir,"Files"), "firebug-2.0.7.xpi")    
    firefoxProfile.add_extension(firebugPlugFile)
    firefoxProfile.set_preference("extensions.firebug.currentVersion", "2.0.7")

    driver = webdriver.Firefox(firefox_profile=firefoxProfile)
    driver.get("http://www.baidu.com")

def start_chrome_with_chrometomobile_plug():
    """启动Chrome,并自动加载插件Chrome to Mobile"""
    tempDir = os.getcwd()
    tempDir = os.path.split(tempDir)[0]
    chrome_driver_file = os.path.join(os.path.join(tempDir,"Files"), "chromedriver.exe")        
    os.environ["webdriver.chrome.driver"] = chrome_driver_file

    chrome_to_mobile_plug_file =  os.path.join(os.path.join(tempDir,"Files"), "Chrome-to-Mobile_v3.3.crx")
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_extension(chrome_to_mobile_plug_file)
    driver = webdriver.Chrome(executable_path=chrome_driver_file, 
                             chrome_options=chrome_options)
    driver.get("http://www.baidu.com")
    '''
    driver.close()
    driver.quit()
    driver = None
    '''

def start_firefox_with_default_settings():
    """启动Firefox浏览器, 使用本地配置文件中的选项配置浏览器
    自动将页面载入过程导出为Har文件,并存放在
    配置项 extensions.firebug.netexport.defaultLogDir指定的D:\temp\selenium2目录下    
    """
    firefox_bin = os.path.abspath(r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe")
    os.environ["webdriver.firefox.bin"] = firefox_bin

    # 使用从别的机器上拷贝来的浏览器配置
    firefox_profile = webdriver.FirefoxProfile(os.path.abspath(r"D:\Temp\selenium2\Profiles\mm9zxom8.default"))
    # 使用本地的默认配置
    #firefox_profile = webdriver.FirefoxProfile(r"C:\Users\eli\AppData\Roaming\Mozilla\Firefox\Profiles\mm9zxom8.default")
    driver = webdriver.Firefox(firefox_profile=firefox_profile)
    driver.get("http://www.baidu.com")
    driver.get("http://www.baidu.com")
    '''
    driver.close()
    driver.quit()
    driver = None
    '''

def start_chrome_with_default_settings():
    """启动Firefox浏览器, 使用本地配置文件中的选项配置浏览器"""
    tempDir = os.getcwd()
    tempDir = os.path.split(tempDir)[0]
    chrome_driver = chrome_driver_file = os.path.join(os.path.join(tempDir,"Files"), "chromedriver.exe")        
    os.environ["webdriver.chrome.driver"] = chrome_driver

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--test-type")
    #chrome_options.add_argument("user-data-dir="+os.path.abspath(r"D:\Temp\selenium2\User Data"))
    chrome_options.add_argument("user-data-dir="+os.path.abspath(r"C:\Users\eli\AppData\Local\Google\Chrome\User Data"))
    driver = webdriver.Chrome(executable_path=chrome_driver, 
                             chrome_options=chrome_options)
    driver.get("http://www.baidu.com")


if __name__ == "__main__":  
    # 2.启动浏览器时自动加载插件, 如Firefox -> Firebug ; Chrome -> Chrome to Mobile
    # start_firefox_with_firebug_plug()
    # start_chrome_with_chrometomobile_plug()
    # start_firefox_with_default_settings()
    start_chrome_with_default_settings()


    # 1.启动各种浏览器
    #startFirefox()
    #startFirefoxWithSpecificLocation()
    #startChrome()
    #startIE()   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值