Не могу понять почему часть кода не работает
Есть код скрипта. Он должен. Найти бота в телеграмме, проверить последнее сообщение на наличие награды или ссылки. Проверить её на работоспособность. Если нет, сделать запрос чат /visit. Далее перейти по ссылке из первой кнопки меню.
Есть три вариации перехода: 1. просто ссылка и ожидание. 2. Ссылка с нахождением на сайте определенное время. 3. Ссылка с капчей её пропускаем.
Проблема состоит в том, что часть кода отвечающая за открытие -> переход -> ожидание не срабатывает в этих частях кода:

Сам код скрипта
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from telethon import sync, events
import requests
import json
import hashlib
import time
import re
from virus_total_apis import PublicApi as VirusTotalPublicApi
from telethon import TelegramClient
import webbrowser
import urllib.request
import os
n = 0
api_id =
api_hash = ''
client = TelegramClient('LalkaTralnaya', api_id, api_hash)
client.start()
dlgs = client.get_dialogs()
for dlg in dlgs:
if dlg.title == 'LTC Click Bot':
tegmo = dlg
class RunChromeTests():
def testMethod(self, waitin = 10, witin = 10):
caps = ('browserName', 'chrome')
driver = webdriver.Chrome(command_executor=f'http://localhost:9515/wd/hub', desired_capabilities=caps)
driver.get()
time.sleep(witin + 10)
driver.close()
driver.quit()
while True:
msgs = client.get_messages(tegmo, limit=1)
for mes in msgs:
if re.search(r'\bseconds to get your reward\b', mes.message):
print("Найдено reward")
str_a = str(mes.message)
zz = str_a.replace('You must stay on the site for', '')
qq = zz.replace('seconds to get your reward.', '')
waitin = int(qq)
print ("Ждать придется: ", waitin)
client.send_message('LTC Click Bot', "/visit")
time.sleep(3)
msgs2 = client.get_messages(tegmo, limit=1)
for mes2 in msgs2:
button_data = mes2.reply_markup.rows[1].buttons[1].data
message_id = mes2.id
print("Перехожу по ссылке")
time.sleep(2)
url_rec = messages[0].reply_markup.rows[0].buttons[0].url
ch = RunChromeTests()
ch.testMethod()
time.sleep(6)
fp = urllib.request.urlopen(url_rec)
mybytes = fp.read()
mystr = mybytes.decode("utf8")
fp.close()
if re.search(r'\bSwitch to reCAPTCHA\b', mystr):
from telethon.tl.functions.messages import GetBotCallbackAnswerRequest
resp = client(GetBotCallbackAnswerRequest(
'LTC Click Bot',
message_id,
data=button_data
))
time.sleep(2)
print("КАПЧА!")
os.system("pkill chromium")
else:
time.sleep(waitin)
os.system("pkill chromium")
time.sleep(2)
elif re.search(r'\bSorry\b', mes.message):
client.send_message('LTC Click Bot', "/visit")
time.sleep(6)
print("Найдено Sorry")
else:
messages = client.get_messages('Litecoin_click_bot')
url_rec = messages[0].reply_markup.rows[0].buttons[0].url
f = open("per10.txt")
fd = f.read()
if fd == url_rec:
print("Найдено повторение переменной")
msgs2 = client.get_messages(tegmo, limit=1)
for mes2 in msgs2:
button_data = mes2.reply_markup.rows[1].buttons[1].data
message_id = mes2.id
from telethon.tl.functions.messages import GetBotCallbackAnswerRequest
resp = client(GetBotCallbackAnswerRequest(
tegmo,
message_id,
data=button_data
))
time.sleep(2)
else:
url = 'https://www.virustotal.com/vtapi/v2/url/scan'
params = {
'apikey': '', 'url': url_rec}
response = requests.post(url, data=params)
my_file = open('per10.txt', 'w')
my_file.write(url_rec)
print("Новая запись в файле сделана")
time.sleep(16)
n = n + 1
print("Пройдено циклов: ", n)
Ошибка
Traceback (most recent call last):
File "c:\Users\vladm\.vscode\extensions\ms-python.python-2020.2.64397\pythonFiles\ptvsd_launcher.py", line 48, in <module>
main(ptvsdArgs)
File "c:\Users\vladm\.vscode\extensions\ms-python.python-2020.2.64397\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py", line 432,
in main
run()
File "c:\Users\vladm\.vscode\extensions\ms-python.python-2020.2.64397\pythonFiles\lib\python\old_ptvsd\ptvsd\__main__.py", line 316,
in run_file
runpy.run_path(target, run_name='__main__')
File "C:\Python38-32\lib\runpy.py", line 263, in run_path
return _run_module_code(code, init_globals, run_name,
File "C:\Python38-32\lib\runpy.py", line 96, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "C:\Python38-32\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "c:\Python38-32\criptobot\scratch.py", line 96, in <module>
url_rec = messages[0].reply_markup.rows[0].buttons[0].url
AttributeError: 'NoneType' object has no attribute 'rows'