<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@ddbd</title><author><name>@ddbd</name></author><id>https://teletype.in/atom/ddbd</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/ddbd?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@ddbd?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=ddbd"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/ddbd?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-25T03:00:37.736Z</updated><entry><id>ddbd:-IB-GIOfisw</id><link rel="alternate" type="text/html" href="https://teletype.in/@ddbd/-IB-GIOfisw?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=ddbd"></link><title>Создание виртуального окружения и установка Selenium в него</title><published>2024-03-28T11:06:43.278Z</published><updated>2024-03-28T11:06:43.278Z</updated><summary type="html">Создайте виртуальное окружение:</summary><content type="html">
  &lt;p id=&quot;9wuy&quot;&gt;&lt;strong&gt;Создайте виртуальное окружение&lt;/strong&gt;:&lt;/p&gt;
  &lt;pre id=&quot;UEDr&quot;&gt;Copy&lt;/pre&gt;
  &lt;pre id=&quot;IcBA&quot;&gt;python3 -m venv /path/to/new/virtual/environment&lt;/pre&gt;
  &lt;p id=&quot;FwoK&quot;&gt;Замените &lt;code&gt;/path/to/new/virtual/environment&lt;/code&gt; на путь, где вы хотите создать виртуальное окружение. Например, если вы хотите создать его в директории &lt;code&gt;/root/myenv&lt;/code&gt;, используйте:&lt;/p&gt;
  &lt;pre id=&quot;MLIo&quot;&gt;Copy&lt;/pre&gt;
  &lt;pre id=&quot;S7JH&quot;&gt;python3 -m venv /root/myenv&lt;/pre&gt;
  &lt;p id=&quot;Kw2B&quot;&gt;&lt;strong&gt;Активируйте виртуальное окружение&lt;/strong&gt;:&lt;/p&gt;
  &lt;pre id=&quot;lq6h&quot;&gt;Copy&lt;/pre&gt;
  &lt;pre id=&quot;Yjo9&quot;&gt;source /root/myenv/bin/activate&lt;/pre&gt;
  &lt;p id=&quot;3nZx&quot;&gt;Эта команда активирует виртуальное окружение. После активации, вы увидите имя виртуального окружения в приглашении командной строки.&lt;/p&gt;
  &lt;p id=&quot;oDQc&quot;&gt;&lt;strong&gt;Установите Selenium в активированное виртуальное окружение&lt;/strong&gt;:&lt;/p&gt;
  &lt;ol id=&quot;X6bw&quot;&gt;
    &lt;li id=&quot;ftIf&quot;&gt;&lt;code&gt;pip install selenium&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;lN88&quot;&gt;&lt;strong&gt;Установка зависимостей&lt;/strong&gt;: Если ваш скрипт требует дополнительных зависимостей, установите их таким же образом, используя &lt;code&gt;pip&lt;/code&gt; внутри активированного виртуального окружения.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;GJyf&quot;&gt;После выполнения этих шагов, ваши Python скрипты, требующие Selenium, могут быть запущены в изолированном окружении, что позволяет избежать конфликтов с системными пакетами и повышает безопасность работы с Python пакетами.&lt;/p&gt;
  &lt;p id=&quot;UyAV&quot;&gt;Когда вы закончите работу с виртуальным окружением, его можно деактивировать командой &lt;code&gt;deactivate&lt;/code&gt;.&lt;/p&gt;
  &lt;ol id=&quot;rWbD&quot;&gt;
    &lt;li id=&quot;Jaqm&quot;&gt;&lt;strong&gt;Перезагрузка конфигурации systemd&lt;/strong&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;D1zy&quot;&gt;Перезагрузите systemd, чтобы применить изменения в конфигурации сервиса:&lt;/p&gt;
  &lt;pre id=&quot;bYVD&quot;&gt;sudo systemctl daemon-reload&lt;/pre&gt;
  &lt;ol id=&quot;0QIo&quot;&gt;
    &lt;li id=&quot;UvFg&quot;&gt;&lt;strong&gt;Запуск сервиса&lt;/strong&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;ldES&quot;&gt;Теперь запустите ваш новый или модифицированный сервис:&lt;/p&gt;
  &lt;pre id=&quot;ndWd&quot;&gt;sudo systemctl start automation.service&lt;/pre&gt;
  &lt;ol id=&quot;ooKx&quot;&gt;
    &lt;li id=&quot;g5Fd&quot;&gt;&lt;strong&gt;Автоматический запуск сервиса при старте системы&lt;/strong&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Bnsy&quot;&gt;Если вы хотите, чтобы ваш сервис запускался автоматически при старте системы, включите его:&lt;/p&gt;
  &lt;pre id=&quot;o0Ls&quot;&gt;sudo systemctl enable automation.service&lt;/pre&gt;
  &lt;ol id=&quot;ZMfc&quot;&gt;
    &lt;li id=&quot;UaKi&quot;&gt;&lt;strong&gt;Проверка статуса сервиса&lt;/strong&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;DsHi&quot;&gt;Проверьте статус вашего сервиса, чтобы убедиться, что он запущен успешно:&lt;/p&gt;
  &lt;pre id=&quot;iJtB&quot;&gt;sudo systemctl status automation.service&lt;/pre&gt;
  &lt;p id=&quot;3drs&quot;&gt;Теперь ваш скрипт должен работать как сервис в фоновом режиме. Вы можете проверять его работу и логи через &lt;code&gt;systemctl status&lt;/code&gt; и &lt;code&gt;journalctl -u automation.service&lt;/code&gt; соответственно.&lt;/p&gt;

</content></entry><entry><id>ddbd:Nastrojka-avtozapuska-skripta</id><link rel="alternate" type="text/html" href="https://teletype.in/@ddbd/Nastrojka-avtozapuska-skripta?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=ddbd"></link><title>Настройка автозапуска скрипта</title><published>2024-03-27T13:07:16.384Z</published><updated>2024-03-28T10:38:25.961Z</updated><tt:hashtag>автоматизация</tt:hashtag><tt:hashtag>скрипт</tt:hashtag><summary type="html">Создайте новый systemd-сервис для запуска скрипта:</summary><content type="html">
  &lt;p id=&quot;i3Hc&quot;&gt;Создайте новый systemd-сервис для запуска скрипта:&lt;/p&gt;
  &lt;pre id=&quot;oElq&quot;&gt;sudo nano /etc/systemd/system/automation.service
&lt;/pre&gt;
  &lt;ol id=&quot;98WE&quot;&gt;
    &lt;li id=&quot;5Vzi&quot;&gt;&lt;strong&gt;Изменение прав доступа&lt;/strong&gt;: Чтобы убедиться, что файлы имеют права на выполнение (особенно важно для скриптов), измените права доступа следующим образом:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;BT7I&quot;&gt;Для файла :&lt;/p&gt;
  &lt;pre id=&quot;V5ns&quot;&gt;sudo chmod +x /etc/systemd/system/automation.service&lt;/pre&gt;
  &lt;p id=&quot;oKnN&quot;&gt;Это даст файлу &lt;code&gt;keitaro_script.py&lt;/code&gt; права на выполнение.&lt;/p&gt;
  &lt;ol id=&quot;XyaR&quot;&gt;
    &lt;li id=&quot;GABN&quot;&gt;&lt;strong&gt;Проверка наличия файлов&lt;/strong&gt;: Чтобы проверить, что файлы успешно созданы и находятся в нужной директории, используйте команду &lt;code&gt;ls&lt;/code&gt;:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;b2Ml&quot;&gt;ls -l /etc/systemd/system/automation.service&lt;/pre&gt;
  &lt;p id=&quot;ccEy&quot;&gt;Добавьте следующее содержимое в файл:&lt;/p&gt;
  &lt;p id=&quot;pjVz&quot;&gt;&lt;/p&gt;
  &lt;pre id=&quot;jUxc&quot;&gt;[Unit]
Description=Automation Script
After=network.target

[Service]
ExecStart=/usr/bin/python3 /путь/к/automation_script.py
Restart=always
User=ваш-пользователь

[Install]
WantedBy=multi-user.target&lt;/pre&gt;
  &lt;p id=&quot;2E6F&quot;&gt;Замените &lt;code&gt;/путь/к/automation_script.py&lt;/code&gt; на фактический путь к вашему скрипту автоматизации.   Замените &lt;code&gt;ваш-пользователь&lt;/code&gt; на имя пользователя, от которого должен запускаться скрипт.   Сохраните файл и закройте редактор.   Включите и запустите сервис:&lt;/p&gt;
  &lt;pre id=&quot;CdCt&quot;&gt;sudo systemctl enable automation.service
sudo systemctl start automation.service&lt;/pre&gt;
  &lt;p id=&quot;7Iye&quot;&gt;Теперь ваш скрипт автоматизации будет запускаться автоматически при загрузке системы и продолжит работу даже после перезагрузки сервера или закрытия терминала. В дальнейшем вы можете расширить скрипт, добавив код для выполнения необходимых действий в панели управления Кейтаро, таких как отбор списков в фильтрах, добавление и сохранение данных в другое окно.&lt;/p&gt;
  &lt;h3 id=&quot;uSty&quot;&gt;Проверить статус сервиса&lt;/h3&gt;
  &lt;p id=&quot;gtai&quot;&gt;Вы можете проверить статус сервиса, используя команду &lt;code&gt;systemctl status&lt;/code&gt;:&lt;/p&gt;
  &lt;pre id=&quot;YxQ4&quot;&gt;sudo systemctl status automation.service&lt;/pre&gt;
  &lt;p id=&quot;Fy2j&quot;&gt;Эта команда покажет текущий статус сервиса, включая то, активен ли он (запущен) в данный момент, и выведет последние строки из журнала сервиса. Если скрипт успешно сработал, вы увидите соответствующие сообщения в этом журнале.&lt;/p&gt;
  &lt;p id=&quot;AD4h&quot;&gt;&lt;strong&gt; Просмотреть журналы системы&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;4A7d&quot;&gt;Вы можете также просмотреть журналы системы для вашего сервиса, используя &lt;/p&gt;
  &lt;pre id=&quot;f80y&quot;&gt;sudo journalctl -u automation.service&lt;/pre&gt;
  &lt;h3 id=&quot;emUo&quot;&gt;Проверка журналов ошибок&lt;/h3&gt;
  &lt;p id=&quot;ExpL&quot;&gt;Чтобы получить более подробную информацию об ошибке, вызвавшей сбой сервиса, используйте команду &lt;code&gt;journalctl&lt;/code&gt;. Это позволит вам увидеть полный вывод вашего скрипта и сообщения об ошибках.&lt;/p&gt;
  &lt;pre id=&quot;Aw4M&quot;&gt;sudo journalctl -u automation.service&lt;/pre&gt;
  &lt;h3 id=&quot;EBvL&quot;&gt;2. Проверка скрипта на наличие ошибок&lt;/h3&gt;
  &lt;p id=&quot;WSPP&quot;&gt;Ошибка с кодом выхода &lt;code&gt;status=2&lt;/code&gt; обычно указывает на проблемы в самом скрипте. Возможно, в скрипте есть синтаксическая ошибка или он пытается использовать ресурсы, которые недоступны или не существуют. Попробуйте запустить скрипт вручную, чтобы увидеть, выводятся ли какие-либо ошибки:&lt;/p&gt;
  &lt;pre id=&quot;JbYl&quot;&gt;/usr/bin/python3 /etc/systemd/system/automation_script.py&lt;/pre&gt;
  &lt;h3 id=&quot;Hj7q&quot;&gt;3. Проверка прав доступа к скрипту&lt;/h3&gt;
  &lt;p id=&quot;JnsF&quot;&gt;Убедитесь, что скрипт доступен и имеет права на выполнение. Вы можете установить права на выполнение, используя команду &lt;code&gt;chmod&lt;/code&gt;:&lt;/p&gt;
  &lt;pre id=&quot;3MGK&quot;&gt;sudo chmod +x /etc/systemd/system/automation_script.py&lt;/pre&gt;
  &lt;tt-tags id=&quot;rzL7&quot;&gt;
    &lt;tt-tag name=&quot;автоматизация&quot;&gt;#автоматизация&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;скрипт&quot;&gt;#скрипт&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry><entry><id>ddbd:Klik-po-opredelennomu-elementu</id><link rel="alternate" type="text/html" href="https://teletype.in/@ddbd/Klik-po-opredelennomu-elementu?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=ddbd"></link><title>Selenium: Клик по определенному элементу на веб-странице</title><published>2024-03-27T11:38:54.117Z</published><updated>2024-03-28T09:38:13.862Z</updated><summary type="html">Чтобы совершить клик по определенному элементу на веб-странице с использованием Selenium, вам нужно сначала найти этот элемент. Это можно сделать разными способами, в зависимости от того, какие атрибуты у элемента есть (id, класс, имя, XPath и т.д.). Допустим, у вас есть элемент с уникальным идентификатором (id), на который вы хотите кликнуть после успешной авторизации. Вот как это можно сделать:</summary><content type="html">
  &lt;p id=&quot;SyLI&quot;&gt;Чтобы совершить клик по определенному элементу на веб-странице с использованием Selenium, вам нужно сначала найти этот элемент. Это можно сделать разными способами, в зависимости от того, какие атрибуты у элемента есть (id, класс, имя, XPath и т.д.). Допустим, у вас есть элемент с уникальным идентификатором (id), на который вы хотите кликнуть после успешной авторизации. Вот как это можно сделать:&lt;/p&gt;
  &lt;pre id=&quot;HPoI&quot; data-lang=&quot;python&quot;&gt;# Найти элемент по его id и выполнить клик
element_to_click = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, &amp;quot;element_id&amp;quot;)))
element_to_click.click()&lt;/pre&gt;
  &lt;p id=&quot;dKVq&quot;&gt;Если у элемента нет уникального id, но есть, например, уникальный класс, можно использовать следующий код:&lt;br /&gt;&lt;/p&gt;
  &lt;pre id=&quot;8w8V&quot; data-lang=&quot;python&quot;&gt;# Найти элемент по его классу и выполнить клик
element_to_click = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, &amp;quot;class_name&amp;quot;)))
element_to_click.click()&lt;/pre&gt;
  &lt;p id=&quot;Q7bI&quot;&gt;Или если вам нужно использовать XPath для нахождения элемента, код будет выглядеть так:&lt;/p&gt;
  &lt;pre id=&quot;hQhL&quot; data-lang=&quot;python&quot;&gt;# Найти элемент по XPath и выполнить клик
element_to_click = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, &amp;quot;//div[@class=&amp;#x27;example_class&amp;#x27;]/button&amp;quot;)))
element_to_click.click()&lt;/pre&gt;
  &lt;p id=&quot;gmSP&quot;&gt;Важно использовать &lt;code&gt;WebDriverWait&lt;/code&gt; и &lt;code&gt;element_to_be_clickable&lt;/code&gt;, чтобы дождаться, пока элемент станет кликабельным. Это поможет избежать ошибок, связанных с попыткой клика по элементу, который еще не загружен на странице. Убедитесь, что вы замените &lt;code&gt;&amp;quot;element_id&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;class_name&amp;quot;&lt;/code&gt; или XPath-выражение на актуальные значения, соответствующие элементу, по которому вы хотите выполнить клик. Если после клика на элемент требуется выполнить еще какие-либо действия (например, проверить, что появился новый элемент или открылась новая страница), не забудьте добавить соответствующие ожидания или проверки.&lt;/p&gt;
  &lt;h3 id=&quot;C1eF&quot;&gt;Как узнать, что клик выполнен:&lt;/h3&gt;
  &lt;ol id=&quot;hcBR&quot;&gt;
    &lt;li id=&quot;GMMF&quot;&gt;&lt;strong&gt;Добавление явных ожиданий&lt;/strong&gt;: После выполнения клика вы можете использовать явные ожидания (&lt;code&gt;WebDriverWait&lt;/code&gt; в Selenium), чтобы дождаться появления элемента или изменения состояния на странице, которое произойдет только после успешного выполнения клика. Например, если после клика ожидается появление нового элемента, вы можете ожидать его появления: &lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;lITo&quot;&gt;from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Предполагая, что &amp;#x60;driver&amp;#x60; - ваш WebDriver
# После выполнения клика
element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, &amp;quot;newElementId&amp;quot;)))&lt;/pre&gt;
  &lt;p id=&quot;alyD&quot;&gt;&lt;strong&gt;Логирование&lt;/strong&gt;: Добавьте вывод в консоль или логирование перед и после выполнения клика для подтверждения его выполнения:&lt;/p&gt;
  &lt;pre id=&quot;vhte&quot;&gt;Copy&lt;/pre&gt;
  &lt;ol id=&quot;loEQ&quot;&gt;
    &lt;li id=&quot;sm4E&quot;&gt;&lt;code&gt;print(&amp;quot;Выполняю клик...&amp;quot;) driver.find_element(By.ID, &amp;quot;elementId&amp;quot;).click() print(&amp;quot;Клик выполнен.&amp;quot;)&lt;/code&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;Xk0K&quot;&gt;Можно ли редактировать скрипт, когда он запущен:&lt;/h3&gt;
  &lt;p id=&quot;BXN6&quot;&gt;Да, вы можете редактировать скрипт в любое время, но изменения вступят в силу только после его перезапуска. Если ваш скрипт запущен как сервис systemd (&lt;code&gt;automation.service&lt;/code&gt;), вам нужно будет выполнить следующие действия после редактирования скрипта:&lt;/p&gt;
  &lt;ol id=&quot;uScS&quot;&gt;
    &lt;li id=&quot;rRhG&quot;&gt;&lt;strong&gt;Остановить сервис&lt;/strong&gt; (если он активен): &lt;a href=&quot;true&quot;&gt;Copy&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;pre id=&quot;ivVc&quot;&gt;sudo systemctl stop automation.service&lt;/pre&gt;
  &lt;p id=&quot;dTIK&quot;&gt;&lt;strong&gt;Внести изменения в скрипт&lt;/strong&gt;. Используйте предпочитаемый текстовый редактор для редактирования скрипта.&lt;/p&gt;
  &lt;p id=&quot;2F1Y&quot;&gt;&lt;strong&gt;Перезапустить сервис&lt;/strong&gt;, чтобы зменения вступили в силу:&lt;/p&gt;
  &lt;pre id=&quot;rsNT&quot;&gt;sudo systemctl start automation.service&lt;/pre&gt;
  &lt;p id=&quot;i2Qc&quot;&gt;&lt;strong&gt;Проверить статус сервиса&lt;/strong&gt;, чтобы убедиться, что он успешно запущен с новыми изменениями:&lt;/p&gt;
  &lt;p id=&quot;W9qF&quot;&gt;&lt;/p&gt;
  &lt;pre id=&quot;xnQD&quot;&gt;sudo systemctl status automation.service&lt;/pre&gt;

</content></entry><entry><id>ddbd:Proverka_nalichiya_opredelennogo_elementa</id><link rel="alternate" type="text/html" href="https://teletype.in/@ddbd/Proverka_nalichiya_opredelennogo_elementa?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=ddbd"></link><title>Selenium: Проверка наличия, определенного элемента на странице</title><published>2024-03-27T11:15:30.423Z</published><updated>2024-03-27T11:28:31.675Z</updated><tt:hashtag>selenium</tt:hashtag><tt:hashtag>python</tt:hashtag><tt:hashtag>автоматизация</tt:hashtag><summary type="html">Чтобы узнать, что вход в панель управления  выполнен успешно, обычно используется проверка наличия определенного элемента на странице, который является уникальным для страниц после успешной авторизации. В вашем коде вы уже используете такой подход, проверяя наличие элемента с текстом &quot;Dashboard&quot; на странице:</summary><content type="html">
  &lt;p id=&quot;ZQgq&quot;&gt;Чтобы узнать, что вход в панель управления  выполнен успешно, обычно используется проверка наличия определенного элемента на странице, который является уникальным для страниц после успешной авторизации. В вашем коде вы уже используете такой подход, проверяя наличие элемента с текстом &amp;quot;Dashboard&amp;quot; на странице:&lt;/p&gt;
  &lt;pre id=&quot;WeTX&quot; data-lang=&quot;python&quot;&gt;try:
    dashboard_element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, &amp;quot;//h1[contains(text(), &amp;#x27;Dashboard&amp;#x27;)]&amp;quot;)))
    print(&amp;quot;Авторизация успешна&amp;quot;)
except:
    print(&amp;quot;Ошибка авторизации&amp;quot;)&lt;/pre&gt;
  &lt;p id=&quot;uHvM&quot;&gt;Этот код работает следующим образом:&lt;/p&gt;
  &lt;ul id=&quot;m7pR&quot;&gt;
    &lt;li id=&quot;2C3x&quot;&gt;После клика по кнопке входа, скрипт ожидает до 10 секунд появления элемента &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; с текстом &amp;quot;Dashboard&amp;quot; на странице. Это означает, что пользователь успешно авторизовался и перешел на главную страницу панели управления.&lt;/li&gt;
    &lt;li id=&quot;X9Ja&quot;&gt;Если такой элемент найден, скрипт выводит сообщение &amp;quot;Авторизация успешна&amp;quot;.&lt;/li&gt;
    &lt;li id=&quot;mtsy&quot;&gt;Если элемент не найден в течение 10 секунд (например, из-за неправильного логина или пароля), то выполняется блок &lt;code&gt;except&lt;/code&gt;, и скрипт выводит сообщение &amp;quot;Ошибка авторизации&amp;quot;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;0itK&quot;&gt;Для улучшения этого подхода и увеличения надежности проверки, вы можете использовать дополнительные критерии, например, проверку URL-адреса страницы после авторизации или поиск других уникальных элементов, характерных только для авторизованных пользователей.&lt;/p&gt;
  &lt;p id=&quot;nvMU&quot;&gt;Например, проверка URL:&lt;/p&gt;
  &lt;pre id=&quot;Sdfi&quot; data-lang=&quot;python&quot;&gt;if &amp;quot;dashboard&amp;quot; in driver.current_url:
    print(&amp;quot;Авторизация успешна&amp;quot;)
else:
    print(&amp;quot;Ошибка авторизации&amp;quot;)&lt;/pre&gt;
  &lt;p id=&quot;79Ma&quot;&gt;Этот код проверяет, содержит ли текущий URL-адрес страницы слово &amp;quot;dashboard&amp;quot;, что может быть признаком успешной авторизации.&lt;/p&gt;
  &lt;tt-tags id=&quot;tGVR&quot;&gt;
    &lt;tt-tag name=&quot;selenium&quot;&gt;#selenium&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;python&quot;&gt;#python&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;автоматизация&quot;&gt;#автоматизация&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry></feed>