Skip to content
Advertisement

Selenium – How to find color of a pixel on canvas on X Y position?

I’m using selenium with python and I have a problem: I want to get pixel color of x y position on canvas.

Does Selenium have some color picker or something similar?

I tried get color of a pixel with getCssValue but it doesn’t work because it is canvas.

This is an example what I’m trying to achieve

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
chrome_options = Options()

prefs = {'profile.default_content_setting_values': {'images': 1,
                            'plugins': 2, 'geolocation': 2,
                            'notifications': 2, 'auto_select_certificate': 2, 'fullscreen': 2,
                            'mouselock': 2, 'mixed_script': 2, 'media_stream': 2,
                            'media_stream_mic': 2, 'media_stream_camera': 2, 'protocol_handlers': 2,
                            'ppapi_broker': 2, 'automatic_downloads': 2, 'midi_sysex': 2,
                            'push_messaging': 2, 'ssl_cert_decisions': 2, 'metro_switch_to_desktop': 2,
                            'protected_media_identifier': 2, 'app_banner': 2, 'site_engagement': 2,
                            'durable_storage': 2}}
chrome_options.add_experimental_option('prefs', prefs)
chrome_options.add_argument("disable-infobars")
chrome_options.add_argument("disable-gpu")

driver = webdriver.Chrome(options=chrome_options, executable_path=r"C:geckochromedriver.exe")
driver.get("https://drawisland.com/")

act = ActionChains(driver)
canvas = driver.find_element_by_tag_name("canvas")
act.move_to_element_with_offset(canvas,100,100).GetColor().perform()

Advertisement

Answer

This is apparently not possible directly with selenium.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement