Что нового

Библиотека для работы с FireFox

Medic84

Омега
Команда форума
Администратор
Сообщения
1 517
Репутация
321
AutoIt: 3.2.1.2 - 3.3.0.0
Версия: 0.6.0.0b
Категория:
Название: UDF Firefox
Описание: Управление Firefox
;_FFAction
;_FFClick
;_FFCmd
;_FFConnect
;_FFDialogWait
;_FFDisConnect
;_FFDispatchEvent
;_FFFormCheckBox
;_FFFormGetElementsLength
;_FFFormOptionselect
;_FFFormRadioButton
;_FFFormReset
;_FFFormSubmit
;_FFFrameEnter
;_FFFrameLeave
;_FFGetLength
;_FFGetObjectInfo
;_FFGetPosition
;_FFGetValue
;_FFImageClick
;_FFImageGetBySize
;_FFImageMapClick
;_FFIsConnected
;_FFLinkClick
;_FFLinksGetAll
;_FFLoadWait
;_FFLoadWaitTimeOut
;_FFObj
;_FFObjDelete
;_FFObjGet
;_FFObjNew
;_FFOpenURL
;_FFPrefGet
;_FFPrefReset
;_FFPrefSet
;_FFQuit
;_FFReadHTML
;_FFReadText
;_FFSearch
;_FFSetValue
;_FFStart
;_FFTabAdd
;_FFTabClose
;_FFTabDuplicate
;_FFTabExists
;_FFTabGetSelected
;_FFTabSetSelected
;_FFTableWriteToArray
;_FFWindowClose
;_FFWindowGetHandle
;_FFWindowOpen
;_FFWindowSelect
;_FFWriteHTML
;_FFXPath

Изменения в версии 0.6.0.0b:
- Добавлено: _FFWindowOpen: новый параметр: $bLoadWait
- Добавлено: _FFAu3Option / $_FF_SEARCH_MODE = 0 ; 0 = Подстрока / 1 = Сравнить
_FFImageClick
- Удалено: _FFSetValueById, _FFSetValueByName ==> _FFSetValue
- Удалено: _FFGetValueById, _FFGetValueByName ==> _FFGetValue
- Удалено: _FFFormGetLength ==> _FFGetLength
- Удалено: _FFTabGetLength ==> _FFGetLength
- Удалено: _FFTableGetCell ==> _FFXpath
- Удалено: _FFDisPatchKeyEvent ==> _FFDisPatchEvent
- Удалено: _FFTabCloseAll ==> _FFTabClose
- Удалено: _FFFormGetElementsLength: now only returns the DOM-standard length
- Удалено: _FFRecord* functions and all additions for them in all functions
- Изменено: _FFAction("copy"): работает только в текущем окне
- Поправлено: _FFFormGetElementsLength: Сообщение с ошибкой
- Поправлено: _FFDispatchEvent: Ярлыки для элементов

Требования:
Последняя версия FireFox (Flock) и Аддон MozRepl
- _MozRepl_Detect (Проверяет профиль Firefox на наличие аддона MozRepl и если он отсутствует - устанавливает его)
Не забудьте запустить MozRepl!!!
Документация:
Русский язык
Источник: Stilgar


Дополнительно:
Installation MozRepl:Wiki
Extensions MozRepl: xpi, addons.mozilla.org
FF.au3 (V0.6.0.1b-10)
FF.au3 (V0.6.0.2b)
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
Medic84 сказал(а):
- _MozRepl_Detect (Проверяет профиль Firefox на наличие аддона MozRepl и если он отсутствует - устанавливает его)
Не забудьте запустить MozRepl!!!
Позволю себе дополнить тему самими _MozRepl_Detect и MozRepl.xpi ;)
Код:
;===============================================================================
#cs
    AutoIt Version: 3.2.12.1
    Author: Thunder-man (Frank Michalski)

    Script Function:  _MozRepl_Detect()
    Description:      Checks a Firefox profile for the MozRepl extension and installes it if not available.
    default:          $sProfile = "default"
    Return values:    True or False
    V 1.0 ==> 15.09.2007
    V 1.1 ==> 02.08.2008, updated by Stilgar (Thorsten Willert)
    changed the path-macro to @AppDataDir
    changed the ""-profil to "default"
    V1.2 ==> 03.03.2009, updated by Stilgar (Thorsten Willert)
    changed MozLab to MozRepl
    V2.0 ==> 17.03.2009, added intall-option for MozRepl by Stilgar (Thorsten Willert)

#ce
;===============================================================================

;  [Example]
$Result = _MozRepl_Detect()
MsgBox(64, "Result", $Result)

Func _MozRepl_Detect($sProfile = "default", $bInstall = True , $sXPI = "http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi")

    If $sProfile = "" Then $sProfile = "default"

    Local $sIni_Path = @AppDataDir & "\Mozilla\Firefox\"

    Local $var = IniReadSectionNames($sIni_Path & "\profiles.ini")
    If @error Then
        MsgBox(4096, "", "Error occurred, probably no Firefox INI file.")
    Else
        For $i = 1 To $var[0]
            Local $Ini_ = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Name", "Error")
            If $Ini_ = $sProfile Then
                Local $sPath_folder = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Path", "Eror") ;Profil Ordner
                ExitLoop
            EndIf
        Next
    EndIf

    If $bInstall Then
        Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
        Local $sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
        Local $sCommand = StringFormat('"%s" "%s"',$sFFExe, $sXPI)
    EndIf

    If StringLeft($sPath_folder, 8) = "Profiles" Then
        If FileExists($sIni_Path & $sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    Else
        If FileExists($sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    EndIf
EndFunc   ;==>_MozRepl_Detect
 

Waik

Новичок
Сообщения
60
Репутация
16
Библиотека отличная!
Вот еще библиотека для логина на сайтах.Использует FF.au3

http://www.thorsten-willert.de/Themen/FFau3/Beispiele/FF_AutoLogin.au3?a
 

serg-pl-1

Чайник
Сообщения
14
Репутация
1
У меня не получается подключиться к Firefox 3.6, AutoIt v3.3.4.0
FF.au3 лежат в одной дирекории со скрипом.

Код:
#Include <FF.au3>
; выкидывает постоянно "Can't connect to FireFox"

; trying to connect to a running FireFox with MozRepl on
If _FFConnect(Default, Default, 3000) Then
	; open a page
	_FFOpenURL("http://ff-au3-example.thorsten-willert.de/")
	Sleep(3000)
	; disconnect from FireFox
	If _FFDisConnect() Then MsgBox(64, "", "Disconnected from FireFox!")
Else
	MsgBox(64, "", "Can't connect to FireFox!")
EndIf
 

Redline

AutoIT Гуру
Сообщения
506
Репутация
369
serg-pl-1 [?]
У меня не получается подключиться к Firefox 3.6, AutoIt v3.3.4.0FF.au3 лежат в одной дирекории со скрипом.
А mozrepl установил на FF?

http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi
 

Minek

Чайник
Сообщения
10
Репутация
0
Возможно что mozrepl не работает с FF 3.6
Попробуй FF 3.5.8 - на нем точно работает
Кроме того mozrepl нужно запустить - инструменты - mozrepl - start
 

serg-pl-1

Чайник
Сообщения
14
Репутация
1
Minek сказал(а):
Возможно что mozrepl не работает с FF 3.6
Попробуй FF 3.5.8 - на нем точно работает
Кроме того mozrepl нужно запустить - инструменты - mozrepl - start
FF 3.5.8 Да с ним пошёл! СпасибО!
 

ZloiKotFAQ

Чайник
Сообщения
2
Репутация
0
сделал ВСЁ как написано, четырежды перечитал, библиотеку кинул в include плагин в фоксе поставил и ВКЛЮЧИЛ, (я только учусь и новичёк, поэтому может у меня КОД КРИВОЙ??????)
ConsoleWrite создал для проверки
внизу часть кода,

Код:
#include <FF.au3>
  #region РАБОТА ПРОГРАММЫ
ConsoleWrite('создаем массив'&@CRLF)
   Input()                                                      ; эта функция работает
     ConsoleWrite('фаер фокс'&@CRLF)
       _FFStart('www.mail.ru')
 ;      _FFConnect("127.0.0.1", 4242, 6000)      - а может это надо включить??
           ConsoleWrite('проверка'&@CRLF)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
OffTopic:
а между тем фф уже версии 5. и дальше версии будут уже целые.
 

C2H5OH

AutoIT Гуру
Сообщения
1 473
Репутация
332
MozRepl.xpi не работает с firefox 11.0 :(
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
C2H5OH [?]
MozRepl.xpi не работает с firefox 11.0
это легко поправляется. надо сохранить xpi. это по сути обычный zip архив. вытащить оттуда rdf файл, открыть, найти там где максимальная версия, изменить на нужную, или вообще везде звездочки поставить и засунуть обратно в архив. я так кучу якобы несовместимых плагинов ставил на лису
 

syavak

Чайник
Сообщения
12
Репутация
1
помогите народ
нужно получить соурс страницы на русском
но получаю чтото типа
06<8B5 =0 [email protected]>=060 GB>1K C40;8BL 53
ктонибуть сталкивался ?
посоветуйте чтонибуть или если есть готовое решение то ткните меня в него
 

polozmukuch

Чайник
Сообщения
1
Репутация
2
Почему при запуске _FFStart открываются сразу 2 браузера FF?
В первом в адресной строке вбито http://4242/ Во втором - сайт который требуется открыть.
Как избавиться от открывания лишнего браузера FF c http://4242/?
 

spy686

Чайник
Сообщения
12
Репутация
0
пользовался iMacros, по некоторым причинам решил перейти на AutoIt. Но никак не разберусь что с ним делать та надо.
Скачал AutoIt, AutoIt Menu.
Установи AutoIt v3.3.8.1, AutoIt Menu 1.3.1.
запустил как-то
Код:
;===============================================================================
#cs
    AutoIt Version: 3.2.12.1
    Author: Thunder-man (Frank Michalski)

    Script Function:  _MozRepl_Detect()
    Description:      Checks a Firefox profile for the MozRepl extension and installes it if not available.
    default:          $sProfile = "default"
    Return values:    True or False
    V 1.0 ==> 15.09.2007
    V 1.1 ==> 02.08.2008, updated by Stilgar (Thorsten Willert)
    changed the path-macro to @AppDataDir
    changed the ""-profil to "default"
    V1.2 ==> 03.03.2009, updated by Stilgar (Thorsten Willert)
    changed MozLab to MozRepl
    V2.0 ==> 17.03.2009, added intall-option for MozRepl by Stilgar (Thorsten Willert)

#ce
;===============================================================================

;  [Example]
$Result = _MozRepl_Detect()
MsgBox(64, "Result", $Result)

Func _MozRepl_Detect($sProfile = "default", $bInstall = True , $sXPI = "http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi")

    If $sProfile = "" Then $sProfile = "default"

    Local $sIni_Path = @AppDataDir & "\Mozilla\Firefox\"

    Local $var = IniReadSectionNames($sIni_Path & "\profiles.ini")
    If @error Then
        MsgBox(4096, "", "Error occurred, probably no Firefox INI file.")
    Else
        For $i = 1 To $var[0]
            Local $Ini_ = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Name", "Error")
            If $Ini_ = $sProfile Then
                Local $sPath_folder = IniRead($sIni_Path & "\profiles.ini", $var[$i], "Path", "Eror") ;Profil Ordner
                ExitLoop
            EndIf
        Next
    EndIf

    If $bInstall Then
        Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
        Local $sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
        Local $sCommand = StringFormat('"%s" "%s"',$sFFExe, $sXPI)
    EndIf

    If StringLeft($sPath_folder, 8) = "Profiles" Then
        If FileExists($sIni_Path & $sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    Else
        If FileExists($sPath_folder & "\extensions\[email protected]") Then
            Return 1
        Else
            If $bInstall Then Return Run($sCommand)
            Return 0
        EndIf
    EndIf
EndFunc   ;==>_MozRepl_Detect


перешол на страницу https://github.com/bard и все?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 159
Репутация
2 329
spy686 [?]
перешол на страницу https://github.com/bard и все?
Не знаю кто писал функцию, но там много ошибок, вот исправленная версия:

Код:
;  [Example]
$Result = _MozRepl_Detect()
MsgBox(64, "Result", $Result)

Func _MozRepl_Detect($sProfile = "default", $bInstall = True, $sXPI = "http://repo.hyperstruct.net/mozrepl/1.0/mozrepl.xpi")
	Local $sProfile_Path, $sFFExe, $sCommand
	Local $sHKLM = "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"
	
	If $sProfile = "" Then
		$sProfile = "default"
	EndIf
	
	Local $sIni_Path = @AppDataDir & "\Mozilla\Firefox"
	Local $aSectNames = IniReadSectionNames($sIni_Path & "\profiles.ini")
	
	If @error Then
		Return SetError(-1, 0, "Error occurred, probably no Firefox INI file.")
	EndIf
	
	For $i = 1 To $aSectNames[0]
		If IniRead($sIni_Path & "\profiles.ini", $aSectNames[$i], "Name", "") = $sProfile Then
			$sProfile_Path = StringReplace(IniRead($sIni_Path & "\profiles.ini", $aSectNames[$i], "Path", "Eror"), "/", "\")
			If Not StringInStr($sProfile_Path, ":\") Then $sProfile_Path = $sIni_Path & "\" & $sProfile_Path
			
			ExitLoop
		EndIf
	Next
	
	If FileExists($sProfile_Path & "\extensions\[email protected]") Then
		Return 1
	EndIf
	
	If $bInstall Then
		$sFFExe = RegRead($sHKLM & "\" & RegRead($sHKLM, "CurrentVersion") & "\Main", "PathToExe")
		$sCommand = StringFormat('"%s" "%s"', $sFFExe, $sXPI)
		Return Run($sCommand)
	EndIf
	
	Return 0
EndFunc ;==>_MozRepl_Detect
 
Верх