Долго не мог понять почему даже скрипты из справки не хотят работать, оказалось, что последняя версия FireFox, с которой UDF корректно работает - это 54.0.1
Updated: С версией 52.9.0esr (версия на старом движке, которая продолжает поддерживаться) тоже работает Для стабильной работы нужно отключить в Firefox поддержку многопроцессорного режима
На виртуальной машине Mozrepl раньше установился, теперь не устанавливается. Единственное что удалось сделать, это поставить версию расширения 1.0.2 (скачал с гитхаба, распаковал, запаковал в zip и переименовал в xpi) в связке с Firefox 3.6 и Windows XP в виртуальной машине.
Остался рабочий образ виртуальной машины с Win7 и работающим Mozrepl последней версии, придётся этот образ размножать если потребуется использовать последнюю версию расширения.
P.S. С версией 52.9.0esr (это последняя старая, для которой выходят апдейты), почему-то всё работает нестабильно (перестаёт коннектиться без видимых причин)
Вот это плохо. Значит не видать мне скриптов под Лису.
У Mozilla с 2017 года вообще творится фиг пойми что. К рулю пришли эффективные менеджеры, которые решили, что неработающий официальный сайт на версиях до 48, новый страшный дизайн, перелопаченный бэкэнд, переход firefox на WE помогут вытащить его из жопы. Много громких аннонсов, движухи в Индии (похоже, что FF пишут теперь индусы (даже не азиаты)), а на выходе вся инфраструктура накрылась.
Я был у них Contributor'ом, надоело в какой-то момент. Даже самый банальный баг с готовым фиксом в пуле висит уже 2 года.
Осталось только Thunderbird закопать.
В новых версиях вроде закрыли доступ к DOM извне, так что никак. Из современных браузеров только Хром поддаётся автоматизации т.к. его можно запустить в режиме разработчика и тогда будет доступ к DOM. Тут на форуме есть и библиотека для этих целей, но она намного более корявая чем для Firefox и уж тем более для IE
Добавлено:
Сообщение автоматически объединено:
Коршун сказал(а):
Можно как-то победить кириллицу при получении текста страницы?
Я уже разобрался в чём причина ошибки "connected to non-browser window", забыл сюда написать: нужно отключить в Файрфоксе многопроцессорный режим: перейти на страничку about:config и там изменить значение переменной browser.tabs.remote.autostart на false (переменных может быть несколько с разными номерами, менять нужно все)
Добавлено:
Сообщение автоматически объединено:
radioamator сказал(а):
На виртуальной машине Mozrepl раньше установился, теперь не устанавливается.
Как установить Mozrepl вручную:
1. Скачиваете версию Firefox 52.9.0esr (предпочтительно) или 54.0.1. В более поздних он не работает
2. В настройках about:config ищем переменную xpinstall.signatures.required и устанавливаем её значение в false (это отключение требования подписи для расширений)
3. Скачиваем файл mozrepl-1.1.2-fx.xpi (выше давали ссылку на архив) и просто перетягиваем его мышкой в браузер, жмём "установить" в появившемся окошке в углу. Не забудьте включить его автозапуск в меню
Что-то мой FireFox 60.4 вообще себя странно ведёт.
Не могу даже получить его хэндл окна.
Соответственно, не могу получить титл окна.
Он создаёт какое-то пустоё окно, которое невозможно, ни закрыть ни убить.
И для всех функций, которые работают с окнами заменяет все хэндлы хэндлом этого пустого окна.
может кому пригодиться, выдергивание значения элемента с помощью xPath:
Код:
#include <WindowsConstants.au3>;#include <Date.au3>; non standard UDF's#include "wd_helper.au3"#include "wd_core.au3"#include "wd_capabilities.au3"Local$sDesiredCapabilities,$sSession;Run ("C:\Program Files (x86)\AutoIt3\geckodriver.exe")Sleep(1000); Execute browser driverSetupGecko()_WD_Startup()$sSession=_WD_CreateSession($sDesiredCapabilities)ConsoleWrite("+Running: "&"OurScript"&@CRLF)Call("OurScript")_WD_DeleteSession($sSession)_WD_Shutdown()FuncOurScript();OUR SCRIPT_WD_Navigate($sSession,"https://news.com/finance/")Sleep(700);special sleep;While 1 ;loop to catch our element; чтобы захватить элемент необходимо, подсмотреть его XPath, для этого следует вызвать окно Chrome DevTools (аналогично в файрфокс), выделить нужный элемент, кликнув правой клавишей мыши, вызвать контекстное меню, выбрать команду Copy , а затем Copy full XPath.$sElement=_WD_FindElement($sSession,$_WD_LOCATOR_ByXPath,"/html/body/div[3]/div[1]/section/div[1]/div[3]/div[3]/div/ul/div/div/li[1]/div[1]/span[2]");$sValue = _WD_ElementAction($sSession, $sElement, 'property', 'value')$sValue=_WD_ElementAction($sSession,$sElement,"TEXT","");тут получаем текстовое значение элемента;WendEndFuncFuncSetupGecko()_WD_Option('Driver','geckodriver.exe')_WD_Option('DriverParams','--log trace')_WD_Option('Port',4444)$sDesiredCapabilities='{"capabilities": {"alwaysMatch": {"browserName": "firefox", "acceptInsecureCerts":true}}}'EndFunc;==>SetupGecko