:: Visual Foxpro, Foxpro for DOS
Как "нажимать кнопки" на сайтах?
Артём

Сообщений: 127
Дата регистрации: 23.04.2001
Нахожусь в самом начале "нажимания", так что интересны разные варианты.
хотелось изобразить из себя Chrome или Yandex браузер
пока что попробовал
cMainPath = 'C:\Work\VFP9\kdv\'
SET DEFAULT TO &cMainPath
SET PATH TO &cMainPath
oHttp = CREATEOBJECT("Msxml2.XMLHTTP")
cUrl="https://kdvonline.ru/"
oHttp.open("GET",cUrl,.F.)
oHttp.Send()
fn='answer.html'
h = FCREATE( fn)
=FWRITE( h, oHttp.responseText)
=FCLOSE( h)
MODIFY COMMAND &fn
RETURN
но у меня возвращается
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>Ваш браузер устарел | Интернет-магазин KDV</title>

вот так
oie=createobject('internetexplorer.application')
oie.visible=.t.
oie.navigate('https://kdvonline.ru/')
тоже что то старое запускается
подскажите, с чего начать

Основная задача пока делать заказы в интернет магазине. Но возможны и развития проекта в сторону вытаскивания информации о товарах с сайта (например названий и цен)



Исправлено 1 раз(а). Последнее : Артём, 10.05.24 15:12
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
Артём

Сообщений: 127
Дата регистрации: 23.04.2001
похоже, начинать придется так
Declare integer FindWindowEx in win32api integer, integer, string, string
Declare Long GetWindowLong in win32api integer, integer
Declare Long SetWindowLong in win32api integer, integer, integer
Declare integer GetClassName in win32api integer, string @, integer
DECLARE integer GetWindowText IN win32api integer, string @, integer
ACTIVATE SCREEN
FOR nhwnd = 1 TO 200000
buf=Space(256)
sName = SPACE(256)
k=GetClassName(nhwnd,@buf,Len(buf))
IF AT( 'CHROME', UPPER( buf)) > 0
GetWindowText(nhwnd, @sName, 256)
IF AT( 'FORUM', UPPER( sName)) > 0
? nhwnd, buf, sName
ENDIF
ENDIF
ENDFOR
RETURN
почему то открыто 3 вкладки со словом forum а выдается только 2. может кто-нибудь подсказать почему? пробовал 20кк



Исправлено 1 раз(а). Последнее : Артём, 10.05.24 17:30
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
of63
Автор

Сообщений: 25406
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> делать заказы в интернет магазине

Это как например? ... магаз и сам имеет сайт, в котором можно "заказывать" товар. А твой что делать будет должен?
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
Taran

Сообщений: 13688
Откуда: Красноярск
Дата регистрации: 16.01.2008
Я ничего более умного не придумал как посмотреть что делает нажатие на кнопке.
Отправляет запрос. Да, приходится шорошками шевелить. Другого выхода не нашел.
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
kornienko_ru

Сообщений: 235
Откуда: Владивосток
Дата регистрации: 06.09.2015
Артём
oHttp = CREATEOBJECT("Msxml2.XMLHTTP")
Может вам надо вместо устаревшего объекта Msxml2.XMLHTTP открывать: XMLHttpRequest ?

А во втором варианте вместо этого
Артём
oie.navigate('https://kdvonline.ru/')
открывайте так:
oie.navigate("microsoft-edge:kdvonline.ru")
head=oie.Document.head
body=oie.Document.body

PS. Здесь на форуме я не вижу в своем ответе перед kdvonline.ru https двоеточие и две наклонные. А на самом деле они напечатаны.



Исправлено 6 раз(а). Последнее : kornienko_ru, 15.05.24 15:29
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
of63
Автор

Сообщений: 25406
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Taran
Я ничего более умного не придумал как посмотреть что делает нажатие на кнопке.
Отправляет запрос. Да, приходится шорошками шевелить. Другого выхода не нашел.

Да, у сайтописателей разделение труда на бэк- и фронт-энд (на БД и на изображение грубо говоря), и этот обмен между этими концами (не всегда понимающими друг друг друга, и в частности задачедателя, как 3-е лицо) виден, как у радистов на поле боя )
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
Taran

Сообщений: 13688
Откуда: Красноярск
Дата регистрации: 16.01.2008
Мне проще, я был fullstack. Больших проектов правда и не создавал. Чисто для обслуживание своего веб-магазина софта и поддержки существующих клиентов.
Я, пардон, и для Fox программ никогда в жизни не видел тех.задания. Обычно: Посмотри че там девки делают, напиши им чего.
Ratings: 0 negative/1 positive
Re: Как "нажимать кнопки" на сайтах?
of63
Автор

Сообщений: 25406
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Олег, fullstack - это "все збс", "полный фарш"... Если да, до заказчиков надо убивать.
Ratings: 0 negative/0 positive
Re: Как "нажимать кнопки" на сайтах?
Артём

Сообщений: 127
Дата регистрации: 23.04.2001
of63
> делать заказы в интернет магазине
Это как например? ... магаз и сам имеет сайт, в котором можно "заказывать" товар. А твой что делать будет должен?
К делу не относится, но... Есть некоторый удобный способ создавать заказ в базе при магазине или при складе. Удобен он потому, что программист имеет возможность создавать то, что нужно пользователю. Например, видна динамика цен, видны цены всех поставщиков, видны объемы продаж, есть оценка, на сколько хватит пряников, если заказать 10кг. Так вот этот заказ нужно запихать в сайт. само собой на сайте свои названия (но это то легко решается) . сейчас на фоксе для KDV генерируется список "ссылка на страницу-количество" и этот список скармливается программе на пайтоне, на котором для нажатия кнопок есть библиотека selenium. в итоге получается нужный набор товаров в корзине сайта

тут решаются две проблемы.
- основная - не нужно помнить у какого поставщика как что называется. оператор работает с известными ему названиями
- обычно на сайтах очень неудобный поиск, даже, если точно знаешь, что надо.
- нет ошибок неправильности перевода своих названий в чужие

опять же к делу не относится, но обратная задача - запихать в свою программу сформированный сайтом заказ. легко решается копированием экрана в текст и разбором полученного.

Пока это дело забросил. во первых, и так работает. но самое главное, что похоже, эти нажимания кнопок в основном не приветствуются. Банки и владельцы игр создают заказ на защиту от программных нажиманий. В итоге, задача решить всё голыми руками кажется мне очень сложной. Но библиотека селениум есть, значит решить можно



Исправлено 7 раз(а). Последнее : Артём, 26.05.24 00:33
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 15 leonid  (Гостей: 14)

© 2000-2024 Fox Club 
Яндекс.Метрика