🎉

Seleniumで指定座標をクリックさせる

2022/12/10に公開

動的なウェブサイトなどで、タグを追いかけられないときにどうぞ。

heliumを使うともっと楽なんですが、Anacondaで提供されていないようなので、自作してみました。

最後のactions.perform()を書き忘れて、「動かない。指定するタグが悪いのか?」って結構悩みました。

def click_by_position(driver, x, y) -> None:
    from selenium.webdriver.common.action_chains import ActionChains
    actions = ActionChains(driver)

    # MOVE TO TOP_LEFT (`move_to_element` will guide you to the CENTER of the element)
    whole_page = driver.find_element_by_tag_name("html")
    actions.move_to_element_with_offset(whole_page, 0, 0)

    # MOVE TO DESIRED POSITION THEN CLICK
    actions.move_by_offset(x, y)
    actions.click()

    actions.perform()

Discussion