Бот, при входе на страницу нажимает на режимы игры, после чего ищет определённый цвет режима(красный(255, 142, 142)) через mss и возвращает координаты цвета. После чего, по этим координатам должен произойти клик, но он не происходит. Клик завернёт в трай, если без него, то выдаёт ошибку selenium.common.exceptions.MoveTargetOutOfBoundsException: Message: move target out of bounds. Также, в терминале в самый первый раз выводит Click, который выводится только если выполнился actions.move_by_offset(x, y).click().perform(), если в except вызвать функцию ещё раз, то остальные разы выбрасывает ошибку.
Код:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from mss import mss
from time import sleep
from fake_useragent import UserAgent
import numpy as np
def start():
page()
click_to_color([255, 142, 142])
def find_figure(color):
m = mss()
monitor = {
'left': 0,
'top': 0,
'width': 1920,
'height': 1080
}
image = m.grab(monitor=monitor)
array = np.array(image)
colors = (color[2], color[1], color[0],255)
index = np.where(np.all(array == colors, axis=-1))
coords = np.transpose(index)
return coords
def click_to_color(color):
coords = find_figure(color)
if len(coords) and not None:
x = coords[0][1]
y = coords[0][0]
print(x, y)
try:
actions.move_by_offset(x, y).click().perform()
print('Click')
sleep(5)
except: print('Nope')
def page():
driver.get('https://diep.io')
driver.set_window_size(1920,1080)
sleep(7)
actions.move_by_offset(854, 56).click().perform()
sleep(2)
if __name__ == '__main__':
options = Options()
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument(f'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36')
driver = webdriver.Chrome(executable_path="chromedriver", chrome_options=options)
actions = ActionChains(driver)
start()