zoukankan      html  css  js  c++  java
  • Selenium2+python自动化18-加载Firefox配置【转载】

    前言
    有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。

    加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载,

    profile_directory既为浏览器配置文件的路径地址

    一、遇到问题

    1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢?
    
    2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。

    所以没主动加载插件,不过selenium里面其实提供了对应的方法去打开,只是很少有人用到。

    二、FirefoxProfile

    1.要想了解selenium里面API的用法,最好先看下相关的帮助文档打开cmd窗口,

    输入如下信息:
    -》python

    -》from selenium import webdriver

    -》help(webdriver.FirefoxProfile)

    Help on class FirefoxProfile in module

    selenium.webdriver.firefox.firefox_profile:

    class FirefoxProfile(builtin.object)
    | Methods defined here:
    |
    init(self, profile_directory=None)
    | Initialises a new instance of a Firefox Profile

     | :args:
    | - profile_directory: Directory of profile that you want to use.
    | This defaults to None and will create a new
    | directory when object is created.

    2.翻译过来大概意思是说,这里需要profile_directory这个配置文件路径的参数

    3.profile_directory=None,如果没有路径,默认为None,启动的是一个新的,

    有的话就加载指定的路径。

    三、profile_directory

    1.问题来了:Firefox的配置文件地址如何找到呢?
    
    2.打开Firefox点右上角设置>?(帮助)>故障排除信息>显示文件夹

    3.打开后把路径复制下来就可以了:

    C:UsersxxxAppDataRoamingMozillaFirefoxProfiles1x41j9of.default

    四、启动配置文件

    1.由于文件路径存在字符: ,反斜杠在代码里是转义字符,这个有点代码基础的应该都知道。

    不懂什么叫转义字符的,自己翻书补下基础吧!

    2.遇到转义字符,为了不让转义,有两种处理方式:

    第一种: (前面再加一个反斜杠)

    第二种:r”"(字符串前面加r,使用字符串原型)

    五、参考代码:

    # coding=utf-8
    from selenium import webdriver
    # 配置文件地址
    profile_directory = r'C:UsersxxxAppDataRoamingMozillaFirefoxProfiles1x41j9of.default'
    # 加载配置配置
    profile = webdriver.FirefoxProfile(profile_directory)
    # 启动浏览器配置
    driver = webdriver.Firefox(profile)

  • 相关阅读:
    sed&awk 资料汇总 全是链接
    LeetCode Path 3Sum
    C++ mem_fun
    递归绑定
    查询当天数据
    清除script注入
    防注入查询
    我的最新分页
    群发邮件
    利用缓存
  • 原文地址:https://www.cnblogs.com/caoj/p/7805227.html
Copyright © 2011-2022 走看看