1. 程式人生 > >Selenium2+python自動化18-加載Firefox配置

Selenium2+python自動化18-加載Firefox配置

字符 htbox IT info directory 文件路徑 信息 method 原型

前言
有小夥伴在用腳本啟動瀏覽器時候發現原來下載的插件不見了,無法用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:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default

技術分享圖片

四、啟動配置文件

1.由於文件路徑存在字符:\ ,反斜杠在代碼裏是轉義字符,這個有點代碼基礎的應該都知道。

不懂什麽叫轉義字符的,自己翻書補下基礎吧!

2.遇到轉義字符,為了不讓轉義,有兩種處理方式:

第一種:\ (前面再加一個反斜杠)

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

技術分享圖片

五、參考代碼:

# coding=utf-8
from selenium import webdriver
# 配置文件地址
profile_directory = r‘C:\Users\xxx\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default‘
# 加載配置配置
profile = webdriver.FirefoxProfile(profile_directory)
# 啟動瀏覽器配置
driver = webdriver.Firefox(profile)

本章很簡單,多加2行代碼而已,主要是弄清楚原理

Selenium2+python自動化18-加載Firefox配置