我有一个在线计算器,我想自动化一些操作,如减法,除法等,但问题是,没有元素,因为它是一个画布应用计算器(链接下面)。我想知道如何才能单击按钮,以便能够自动执行某些操作?
在线计算器im试图实现自动化:
https://www.online-calculator.com/full-screen-calculator/
画布HTML代码
<canvas id="canvas" width="335" height="434" style="position: absolute; display: block; background-color: rgb(255, 255, 255); width: 167.939px; height: 217px;"></canvas>
我的Selenium-Java代码
driver.get("https://www.online-calculator.com/full-screen-calculator/");
driver.manage().window().maximize();
WebElement li = driver.findElements(By.tagName("iframe")).get(0);
driver.switchTo().frame(li);
WebElement canv = driver.findElements(By.tagName("canvas")).get(0);
System.out.println(canv.getSize());
System.out.println(canv.getLocation());
try {
Actions builder = new Actions(driver);
builder.moveToElement(canv, x, y);
builder.click();
builder.perform();
} catch (Exception e)
{
// do nothing
}因此,正如您在上面的代码中所看到的,我仍然需要找到我想要运行的操作的x和y。对于ex,如何找到按钮10、4和减法操作'-‘的坐标,如果我想计算’10-4‘,然后验证它是否等于6,我们将非常感谢。谢谢:)
注意:如果窗口大小发生变化,画布的宽度、高度和位置都会发生变化(我以后考虑锁定窗口大小,这样我的测试就不会在不同的屏幕上出现片状)。
发布于 2020-01-27 02:09:05
我认为你很难找到元素的坐标。为了轻松地找到它们,每个浏览器都会有一些插件。对于chrome,您可以使用页面规则,而对于火狐,您可以使用MeasureIt。通过使用这些工具,您可以获得特定元素的坐标。之后,您可以轻松地单击这些元素。观看以下视频,了解如何在火狐中使用MeasureIt (从11:45分钟开始)。
你关心的另一个问题是如何找到屏幕大小变化的坐标?正常情况下,每个显示器或笔记本电脑都会有一些标准的屏幕尺寸。因此,首先,使用selenium获取屏幕的大小,然后如果对每个屏幕大小的条件进行,则可以使用。这意味着,如果大小大约是800*1200,那么使用这些坐标,其他使用其他坐标,每个屏幕大小使用其他坐标。
https://stackoverflow.com/questions/59918530
复制相似问题