webdriver-0.8.5: a Haskell client for the Selenium WebDriver protocol

Test.WebDriver.Firefox.Profile

Description

A module for working with Firefox profiles. Firefox profiles are manipulated in pure code and then "prepared" for network transmission.

Synopsis

# Profiles

data Firefox Source #

Phantom type used in the parameters of Profile and PreparedProfile

data Profile b Source #

This structure allows you to construct and manipulate profiles in pure code, deferring execution of IO operations until the profile is "prepared". This type is shared by both Firefox and Opera profiles; when a distinction must be made, the phantom type parameter is used to differentiate.

Constructors

 Profile FieldsprofileFiles :: HashMap FilePath FilePathA mapping from relative destination filepaths to source filepaths found on the filesystem. When the profile is prepared, these source filepaths will be moved to their destinations within the profile directory.Using the destination path as the key ensures that there is one unique source path going to each destination path.profilePrefs :: HashMap Text ProfilePrefA map of profile preferences. These are the settings found in the profile's prefs.js, and entries found in about:config

Instances

 Eq (Profile b) Source # Methods(==) :: Profile b -> Profile b -> Bool #(/=) :: Profile b -> Profile b -> Bool # Show (Profile b) Source # MethodsshowsPrec :: Int -> Profile b -> ShowS #show :: Profile b -> String #showList :: [Profile b] -> ShowS #

Represents a profile that has been prepared for network transmission. The profile cannot be modified in this form.

Instances

 Source # Methods(==) :: PreparedProfile b -> PreparedProfile b -> Bool #(/=) :: PreparedProfile b -> PreparedProfile b -> Bool # Source # MethodsshowList :: [PreparedProfile b] -> ShowS # Source # MethodstoJSONList :: [PreparedProfile s] -> Value # Source # Methods

Default Firefox Profile, used when no profile is supplied.

# Preferences

A profile preference value. This is the subset of JSON values that excludes arrays, objects, and null.

Constructors

 PrefInteger !Integer PrefDouble !Double PrefString !Text PrefBool !Bool

Instances

 Source # Methods Source # MethodsshowList :: [ProfilePref] -> ShowS # Source # MethodstoJSONList :: [ProfilePref] -> Value # Source # Methods Source # Methods

class ToPref a where Source #

A typeclass to convert types to profile preference values

Minimal complete definition

toPref

Methods

toPref :: a -> ProfilePref Source #

Instances

 Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Source # Methods Integral a => ToPref (Ratio a) Source # Methods HasResolution r => ToPref (Fixed r) Source # Methods

addPref :: ToPref a => Text -> a -> Profile b -> Profile b Source #

Add a new preference entry to a profile, overwriting any existing entry with the same key.

Retrieve a preference from a profile by key name.

deletePref :: Text -> Profile b -> Profile b Source #

Delete an existing preference entry from a profile. This operation is silent if the preference wasn't found.

# Extensions

Add a new extension to the profile. The file path should refer to a .xpi file or an extension directory on the filesystem.

Delete an existing extension from the profile. The string parameter should refer to an .xpi file or directory located within the extensions directory of the profile. This operation has no effect if the extension was never added to the profile.

Determines if a profile contains the given extension. specified as an .xpi file or directory name

# Other files and directories

addFile :: FilePath -> FilePath -> Profile b -> Profile b Source #

Add a file to the profile directory. The first argument is the source of the file on the local filesystem. The second argument is the destination as a path relative to a profile directory. Overwrites any file that previously pointed to the same destination

Delete a file from the profile directory. The first argument is the name of file within the profile directory.

hasFile :: String -> Profile b -> Bool Source #

Determines if a profile contains the given file, specified as a path relative to the profile directory.

# Miscellaneous profile operations

unionProfiles :: Profile b -> Profile b -> Profile b Source #

Takes the union of two profiles. This is the union of their HashMap fields.

Modifies the profileFiles field of a profile

Modifies the profilePrefs field of a profile.

Prepare a firefox profile for network transmission. Internally, this function constructs a Firefox profile within a temp directory, archives it as a zip file, and then base64 encodes the zipped data. The temporary directory is deleted afterwards.

NOTE: because this function has to copy the profile files into a a temp directory before zip archiving them, this operation is likely to be slow for large profiles. In such a case, consider using prepareLoadedProfile_ or prepareZippedProfile instead.

Apply a function on a default profile, and prepare the result. The Profile passed to the handler function is the default profile used by sessions when Nothing is specified

## Preparing profiles from disk

Load an existing profile from the file system. Any prepared changes made to the Profile will have no effect to the profile on disk.

To make automated browser run smoothly, preferences found in defaultProfile are automatically merged into the preferences of the on-disk-- profile. The on-disk profile's preference will override those found in the default profile.

Convenience function to load an existing Firefox profile from disk, apply a handler function, and then prepare the result for network transmission.

NOTE: like prepareProfile, the same caveat about large profiles applies.

Efficiently load an existing profile from disk and prepare it for network transmission.

## Preparing zip archives

Prepare a zip file of a profile on disk for network transmission. This function is very efficient at loading large profiles from disk.

Prepare a zip archive of a profile for network transmission.

Prepare a ByteString of raw zip data for network transmission

## Preferences parsing error

newtype ProfileParseError Source #

An error occured while attempting to parse a profile's preference file.

Constructors

 ProfileParseError String

Instances

 Source # Methods Source # Methods Source # MethodsshowList :: [ProfileParseError] -> ShowS # Source # Methods