SeleniumでCanvas上の指定した座標(x,y)に自動クリックする方法を明記します
ブラウザのクリック作業を自動化する際に、Canvas(描画)の自動クリックはどうすればいいのか?
ちゃんと用意されていました!
ありがたいですね。
LIVE映像の配信サイトとかはCanvasタグの中で映像が流れるので、動画配信系のサイトでの自動化では便利だと思います。
PCのマウス操作を自動化する方法もありますが、それだとマウス操作が奪われてその間PC使えないので、
これはとてもありがたいです。
Java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
public static void CanvasClick(WebDriver driver, int x, int y) {
WebElement canvas = driver.findElement(By.tagName("canvas"));
Actions act = new Actions(driver);
act.moveToElement(canvas, x, y).click().perform();
}
これでブラウザ上のCanvas領域へフォーカスして、指定した座標へクリックできます。
座標(x, y)はブラウザのhtml表示領域の左上からの距離です。 左上の隅が座標(0, 0)になります。
ただ、指定した座標が正しいかどうかを判定しにくいので、クリックした位置で何かマークを表示出来たらいいなと思います。