我尝试了来自stackoverflow和其他资源的几乎所有可能的解决方案,以滚动或单击画布中的任何特定元素,但没有运气。
画布代码:
AlertDialog.Builder builder = new AlertDialog.Builder(context);//current activity.
b.Window.SetType(WindowManagerTypes.ApplicationPanel);
以上代码是从chrome 67.0中检查的。
有效的硒代码:
<canvas id="CST_canvas" width="390" height="4000" style="width: 390px; height: 4000px; cursor: url("data:image/x-icon;base64,AAACAAEAAAAAAAAAAAAoAAAAFgAAACgAAAAAAAAAAAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") 0 0, default;">
Canvas not supported.
</canvas>
以上代码可正常工作,但不确定其在画布中的单击位置。它在某个时候单击。但是,当我尝试传递offset时,将其移至element,然后滚动,则它永远无法工作。有时没有错误,有时又出现webdriver异常:driver.findElement(By.id("CST_canvas")).click();
。
以下,我尝试移动或单击特定元素:
代码1:
element not clickable at point
代码2:
Actions builder = new Actions(driver);
Action action = builder.moveToElement( driver.findElement(By.id("CST_canvas"))) // start point
.click()
.moveByOffset(500, 160) // second point
.doubleClick()
.build();
action.perform();