Если IE.ReadyState
и IE.Busy
не работают, вы можете просто проверить элемент, который, как вы знаете, будет существовать после загрузки страницы, и добавить API Sleep
, чтобы вы не стали быстрое испытание Fname
, пока не будет ничего.
Спящий API равен
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
. Затем измените While-Wend
на
Do Until Not Fname Is Nothing
Set Fname = IE.document.getElementByID("firstname")
Sleep 1000 '<- make this however long you want it to wait in ms
Loop
. "Защищенный внутренний" модификатор доступа объединение из "защищенных" и "внутренних" модификаторов.
От MSDN, Модификаторы Доступа (Руководство по программированию C#) :
защитил :
к типу или участнику может получить доступ только код в том же классе или структуре, или в классе, который получен из того класса.
к типу или участнику может получить доступ любой код в том же блоке, но не от другого блока.
защитил внутренний :
к типу или участнику может получить доступ любой код в блоке, в котором он объявляется, ИЛИ из производного класса в другом блоке. Доступ от другого блока должен произойти в рамках объявления класса, которое происходит из класса, в котором объявляется защищенный внутренний элемент, и это должно произойти через экземпляр типа производного класса.
Примечание, что : protected internal
средства" protected
ИЛИ internal
" (любой класс в том же блоке или любой производный класс - даже если это находится в другом блоке).
... и для полноты:
частный :
к типу или участнику может получить доступ только код в том же классе или структуре.
к типу или участнику может получить доступ любой другой код в том же блоке или другом блоке, который ссылается на него.
Доступ ограничен содержанием класса или вводит полученный из содержания класса в рамках текущего блока.
( Доступный начиная с C# 7.2)
protected
может использоваться любыми подклассами от любого блока.
protected internal
все, что protected
, плюс также что-либо в том же блоке может получить доступ к нему.
Значительно, это не означает "подклассы в том же блоке" - это - объединение этих двух, не пересечение.
На практике, о методах:
защитил - доступный для наследованных классов, в других отношениях частных.
внутренний - общественность только для классов в блоке, в других отношениях частном.
защитил внутренний - средства защитили или внутренний - методы становятся доступными для наследованных классов и для любых классов в блоке.
protected : переменная или метод будут доступны только дочерним классам (в любой сборке)
protected internal : доступны дочерним классам в любой сборке и для всех классов в одной сборке