1 (изменено: Dworkin, 2018-02-20 20:53:40)

Тема: AHK: Получить HTML код текущей залогиненой страницы в Firefox

Добрый вечер.
Нужен скрипт который бы получал html код или скачивал страницу сайта на котором надо залогиниться что бы увидеть содержимое.
Если даже в браузере залогиненый и скачиваю страницу или получаю ее html код то получаю код страницы где надо водить логин и пароль вместо содержимого.
Где-то прочитал что в Firefox с помощью ahk такое не получится сделать.

Нужно именно для Firefox.
Нашел SeleniumBasic. Для проверки работоспособности скачал новый chromedriver.exe и для Chrome работает:


#Persistent
driver := ComObjCreate("Selenium.ChromeDriver")
driver.Get("http://www.google.com/")

Для Firefox выдает ошибку таймаута прослушивания порта. Прочитал что для Firefox'a надо скачать geckodriver.exe.
В python'e надо указывать путь к geckodriver.exe, значит в ахк тоже надо указать путь. Нашел код для хрома где указывают путь:


#Persistent

chromePath := "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  
chromedriverpath := "C:\Users\Mir\AppData\Local\SeleniumBasic\chromedriver.exe" 
options := new ChromeOptions()
options.setBinary(chromepath) 
System.setProperty("webdriver.chrome.driver", chromedriverpath) 
driver := new ChromeDriver(options)
 
driver := ComObjCreate("Selenium.ChromeDriver")
driver.Get("http://www.google.ca/")

Работает.

Решил изменить для firefox:


#Persistent
firefoxPath := "C:\Program Files\Mozilla Firefox\firefox.exe"  
firefoxdriverpath := "C:\Users\Mir\AppData\Local\SeleniumBasic\geckodriver.exe" 
options := new FireFoxOptions()
options.setBinary(firefoxpath) 
System.setProperty("webdriver.firefox.driver", firefoxdriverpath) 
driver := new FireFoxDriver(options)
 
driver := ComObjCreate("Selenium.FireFoxDriver")
driver.Get("http://www.google.com/")

Не работает.
Помогите пожалуйста.

2

Re: AHK: Получить HTML код текущей залогиненой страницы в Firefox

Я совсем не в теме, но какой смысл в присваивании одной и той же переменной двух разных объектов подряд?

Dworkin пишет:
driver := new FireFoxDriver(options)
 
driver := ComObjCreate("Selenium.FireFoxDriver")

Очевидно, что первый объект не сохраняется (хотя, возможно, достаточно его запустить, не знаю).

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Dworkin, 2018-02-20 22:39:42)

Re: AHK: Получить HTML код текущей залогиненой страницы в Firefox

teadrinker пишет:

Я совсем не в теме, но какой смысл в присваивании одной и той же переменной двух разных объектов подряд?

Смысл в том что я почти не умею работать с объектами.
Если так даже для хрома:

#Persistent

chromePath := "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  
chromedriverpath := "C:\Users\Mir\AppData\Local\SeleniumBasic\chromedriver.exe" 
options := new ChromeOptions()
options.setBinary(chromepath) 
System.setProperty("webdriver.chrome.driver", chromedriverpath) 

driver := new ChromeDriver(options)
driver.Get("http://www.google.ca/")

То не работает.

Если даже так указать на старый драйвер хрома с которым не работало то все равно работает:


#Persistent

chromePath := "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  
chromedriverpath := "C:\Users\Mir\AppData\Local\SeleniumBasic\chromedriver_old.exe" 
options := new ChromeOptions()
options.setBinary(chromepath) 
System.setProperty("webdriver.chrome.driver", chromedriverpath) 

driver := ComObjCreate("Selenium.ChromeDriver")
driver.Get("http://www.google.ca/")

4

Re: AHK: Получить HTML код текущей залогиненой страницы в Firefox

Забыл упомянуть что путь к geckodriver.exe записал в path.

5

Re: AHK: Получить HTML код текущей залогиненой страницы в Firefox

https://github.com/florentbr/SeleniumBasic/issues/162

6

Re: AHK: Получить HTML код текущей залогиненой страницы в Firefox

Появился SeleniumBasic для Selenium v3.141.000:
https://www.cnblogs.com/ryueifu-VBA/p/13661128.html