Веб-разработчик может назвать свои входы, кнопки, формы, идентификаторы, как они хотят. Адрес электронной почты может называться Email, ID или Имя пользователя, или XYZ, поэтому вы должны проверить элементы на веб-сайте, чтобы вы могли соответствующим образом создать свой код. Возьмем, к примеру, твиттер.
<input class="js-username-field email-input js-initial-focus" type="text" name="session[username_or_email]" autocomplete="on" value="" placeholder="Phone, email or username">
Тег является тегом input
, с именем класса js-username-field email-input js-initial-focus
на нем нет идентификатора, поэтому вы не можете использовать HTMLDoc.getElementByID
, вам нужно использовать HTMLDoc.getElementsByClassName
или вы можете использовать HTMLDoc.getElementsByTagName
но если имеется более 1 входа, вы должны зациклить их и правильно определить тот, который вам нужен.
Это проще, чем кажется, но вы должны иметь базовые знания HTML. Продолжая с твиттером, тег для пароля:
<input class="js-password-field" type="password" name="session[password]" placeholder="Password">
Другой класс и другое имя, чтобы различать их. И, наконец, кнопка входа в систему / отправки:
<button type="submit" class="submit EdgeButton EdgeButton--primary EdgeButtom--medium">Log in</button>
Используя эти 3 части HTML-элементов, вы можете войти в систему следующим образом:
HTMLDoc.getElementsByClassName("js-username-field email-input js-initial-focus")(0).Value = "email@example.com"
HTMLDoc.getElementsByClassName("js-password-field")(0).Value = "ex5566"
HTMLDoc.getElementsByClassName("submit EdgeButton EdgeButton--primary EdgeButtom--medium")(0).Click
Что означает (0)? в HTML вы можете иметь много тегов с одним и тем же именем класса, и все они находятся в массиве, когда вы вызываете getElementsByClassName, так как на сайте входа в систему есть только 1 тег с этими именами классов, позиция массива "0" - это то, что вы ищу.
Опять же, разработчик может назвать класс, идентификатор, что угодно, поэтому вы хотите проверить сайт на предмет правильного кодирования вашего скрипта.