1

Тема: Переменные при работе с браузером. Переменные как ссылка.

Здравствуйте не подскажите почему так скрипт не работает корректно, точнее просто не работает. (?)
Скрипт:

+ открыть спойлер
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

;Сайт с которого нужно брать URL сервера: https://www.rustmonitor.com/servers

InputBox, linkclip
Loop, 100
{
ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := false
ie.Navigate("%linkclip%")
While ie.readystate <> 4
	continue
;	ie.document.getElementById("_warningBtn").click()
;	ie.document.getElementsByClassName("play-btn")[0].click()
;	Sleep, 1500
ie.quit
}
Return

Читал справку, искал на форуме, но что-то не понял в чём проблема

Спасибо!

2 (изменено: svoboden, 2017-12-29 22:12:34)

Re: Переменные при работе с браузером. Переменные как ссылка.

Конечно, работать не будет, т.к. в примере многое не правильно, например, проценты не нужны.

3

Re: Переменные при работе с браузером. Переменные как ссылка.

svobodenЧто не правильно?
Если я делаю скрипт без переменой просто вставляю ссылку вместо %linkclip% именно вместо этих символов то всё работает правильно. Ну и естественно удаляю строку с InputBox.

Если же я убираю "проценты" то получается что он открывает в браузере якобы ссылку "linkclip". То есть он просто пишет в адресную строку linkclip

4 (изменено: svoboden, 2017-12-29 22:48:21)

Re: Переменные при работе с браузером. Переменные как ссылка.

Кавычки убери еще.

5 (изменено: romzes96, 2017-12-29 23:45:52)

Re: Переменные при работе с браузером. Переменные как ссылка.

svoboden, спасибо хотел так попробовать тоже, но что-то меня остановило.
Как определить когда как писать? (%%,"",())

Вы написали что много чего не так в скрите, хотелось бы узнать что еще можно исправить.

6 (изменено: svoboden, 2017-12-30 00:11:11)

Re: Переменные при работе с браузером. Переменные как ссылка.

Вижу две проблемы:
1) Для чего loop 100?
2) Скрипт не дожидается загрузки страницы.

7

Re: Переменные при работе с браузером. Переменные как ссылка.

svoboden пишет:

2) Скрипт не дожидается загрузки страницы, что плохо.

А это, что по вашему?

While ie.readystate <> 4

8 (изменено: svoboden, 2017-12-30 00:22:34)

Re: Переменные при работе с браузером. Переменные как ссылка.

Не знаю, у меня как-то так дожидается загрузки страницы:

Readystate = "Complete"

А про While ie.readystate <> 4 в справке ничего не вижу.

9 (изменено: Malcev, 2017-12-30 00:24:06)

Re: Переменные при работе с браузером. Переменные как ссылка.

Если вы не знаете, то почему-то вместо того, чтобы спросить, вы указываете на ошибку.
Уже не в первый раз, кстати.

10

Re: Переменные при работе с браузером. Переменные как ссылка.

Даже не знаю, что ответить. Как-то я не чувствую своей ошибки. Хотя, если ошибаюсь, то признаю ошибку.

11

Re: Переменные при работе с браузером. Переменные как ссылка.

svoboden пишет:

Как-то я не чувствую своей ошибки

Наглядно 2 варианта:

ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("https://www.rustmonitor.com/servers")
While ie.readystate <> 4
	continue
msgbox
ie.quit
Return
ie := ComObjCreate("InternetExplorer.Application")
ie.Visible := true
ie.Navigate("https://www.rustmonitor.com/servers")
msgbox
ie.quit
Return

12

Re: Переменные при работе с браузером. Переменные как ссылка.

Мне это не о чем не говорит, допускаю, что ie.readystate <> 4 дожидается загрузки страницы, так я не указывал на ошибку, а писал про проблему, т.к. в справке msdn про ie.readystate <> 4 ничего нету, а есть константа "Complete".

13

Re: Переменные при работе с браузером. Переменные как ссылка.

svoboden пишет:

в справке msdn про ie.readystate <> 4 ничего нету

Неужели?
https://msdn.microsoft.com/ru-ru/librar … s.85).aspx

14 (изменено: svoboden, 2017-12-30 01:05:04)

Re: Переменные при работе с браузером. Переменные как ссылка.

А зачем мне такая сложность, если есть такая справка: https://msdn.microsoft.com/en-us/librar … s.85).aspx?

15

Re: Переменные при работе с браузером. Переменные как ссылка.

Затем, чтоб иметь представление какие методы и мвойства поддерживает объект IE.
Ну и где вы видите по вашей ссылке, что есть константа "Complete"?

16 (изменено: svoboden, 2017-12-30 02:14:43)

Re: Переменные при работе с браузером. Переменные как ссылка.

Я не писал про эту константу, я про справку писал.
P.S. Все равно не вижу своей ошибки. И я не думаю, что тут насколько строгий форум. Уже не говоря о том, что правило форума гласит: "1 тема, один вопрос".

17

Re: Переменные при работе с браузером. Переменные как ссылка.

svoboden, дело не в строгости, а в ответственности, от которой Вы не избавлены, даже если не ведаете о том своим пониманием.

Если перейти по Вашей ссылке, то в самом низу будет строка "Address of a variable that receives one of the READYSTATE enumeration values.", что дословно говорит о перечисляемом списке возвращающем одно из значений и если жмякнуть в ней по ссылке на "READYSTATE", то как раз и будет этот список, в котором "READYSTATE_COMPLETE" числится за индексом №4. Отсюда и логика возвращающая "FALSE" всякий раз, пока документ не вернёт это состояние (4) через свойство "READYSTATE".

18 (изменено: svoboden, 2017-12-30 04:43:54)

Re: Переменные при работе с браузером. Переменные как ссылка.

Почему не в строгости. Давайте еще придиратся к отступам, кстати, было уже? А про ответственность, а что моя "ошибка" меняет, ведь Readystate = "Complete" тоже работает? Говорю, что у меня не подгружается страница из скрипта выше, поэтому и написал, что не ждет загрузки страницы.

19

Re: Переменные при работе с браузером. Переменные как ссылка.

Отступы - это не придирка.
Просто без них код трудночитаем.

svoboden пишет:

ведь Readystate = "Complete" тоже работает?

Приведите полную строку кода.
И почему у вас не подгружается страница выше?

20 (изменено: svoboden, 2017-12-30 05:24:53)

Re: Переменные при работе с браузером. Переменные как ссылка.

Потому, что у автора вопроса написано "ie.Visible := false", а не "true", вот это я имел в виду под предложением "Скрипт не дожидается загрузки страницы". А не While ie.readystate <> 4.

21 (изменено: Malcev, 2017-12-30 05:26:47)

Re: Переменные при работе с браузером. Переменные как ссылка.

А что тогда вы имели в виду под этим?

svoboden пишет:

Не знаю, у меня как-то так дожидается загрузки страницы:

Readystate = "Complete"

Разве после этого кода IE становится видимым?
И полную строку кода приведете?

22 (изменено: svoboden, 2017-12-30 05:40:53)

Re: Переменные при работе с браузером. Переменные как ссылка.

Какой смысл уже, что говорить? Вы начали спорить про свойство readystate, и я про него начал тоже говорить (просто у меня по-другому оно записано). Не знаю, почему пошел разговор про readystate.

23 (изменено: Malcev, 2017-12-30 05:49:16)

Re: Переменные при работе с браузером. Переменные как ссылка.

Смысл в том, чтобы внести ясность.
Оно у вас по-другому записано, потому что у вас это свойство не IE, а Document.
У IE есть свойство Document и свойство ReadyState.
У Document же есть своё свойство ReadyState.

24

Re: Переменные при работе с браузером. Переменные как ссылка.

svoboden, мемберы серого форума с суффиксом, отличным от "Участник" - носители мнения, которое принято считать авторитетным за предметный подход к местной риторике, непременно идущий на пользу. У Вас какая задача? Набрать очередную печеньку в рейтинг? Если нет, то сколько может быть веса у Ваших теорий, основанных на непроверенных предположениях? А если нисколько, то какое им место среди здравого смысла, в поиске которого сюда приходят? Никакого, верно? Такой подход скорее удлиняет поиск пути, уводя от истины. Поэтому нужна ясность, чтобы и Вам, в том числе стало очевидным это заблуждение.

Претендуя на место "умного человека", не уместно оперировать такими понятиями, как:

svoboden пишет:

Мне это не о чем не говорит ...

если Вы обсуждаете свои же методы и съезжать с темы.

25

Re: Переменные при работе с браузером. Переменные как ссылка.

KusochekDobra пишет:

Вы обсуждаете свои же методы

А чего я буду обсуждать то, что не имел в виду? Я же говорил, что я писал про "ie.Visible := false". Просто ReadyState у меня по-другому записан.