[PYTHON] Prise en charge de Flash Selenium

Objectif

problème

Solution

procédure

  1. Obtenez la capture d'écran de l'écran avec Selenium.
  2. Obtenez la position de coordonnées cible (x, y) à partir de l'image de référence préparée à l'avance à l'aide de la mise en correspondance des modèles à l'aide d'OpenCV.
  3. Spécifiez l'élément HTML de référence (cette fois le logo de l'entreprise)
  4. Comparez la distance entre l'élément HTML spécifié et la position de coordonnées cible, déterminez la valeur de décalage et exécutez en utilisant la méthode précédente.

kancolle03.png

la mise en oeuvre

click.py


from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

class Browser(object):
    ...

    def click(self, element, x, y):
        """
            element : Target HTML Element
            x : offset_x
            y : offset_y
        """
        self.driver = webdriver.Firefox()
        target = self.driver.find_element_by_id(element)
        off_x = int(target.size["width"]) / 2
        off_y = int(target.size["height"]) / 2
        actions = ActionChains(self.driver)
        actions.move_to_element(target)
        actions.move_by_offset(x - off_x, y - off_y)
        actions.click()
        actions.move_to_element(target)
        actions.perform()

    ...

Conclusion

Recommended Posts

Prise en charge de Flash Selenium
sélénium