首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到画布上按钮的坐标,并在使用Java和Selenium之后单击它们?

如何找到画布上按钮的坐标,并在使用Java和Selenium之后单击它们?
EN

Stack Overflow用户
提问于 2020-01-26 12:56:34
回答 1查看 5.7K关注 0票数 3

我有一个在线计算器,我想自动化一些操作,如减法,除法等,但问题是,没有元素,因为它是一个画布应用计算器(链接下面)。我想知道如何才能单击按钮,以便能够自动执行某些操作?

在线计算器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代码

代码语言:javascript
复制
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,我们将非常感谢。谢谢:)

注意:如果窗口大小发生变化,画布的宽度、高度和位置都会发生变化(我以后考虑锁定窗口大小,这样我的测试就不会在不同的屏幕上出现片状)。

EN

回答 1

Stack Overflow用户

发布于 2020-01-27 02:09:05

我认为你很难找到元素的坐标。为了轻松地找到它们,每个浏览器都会有一些插件。对于chrome,您可以使用页面规则,而对于火狐,您可以使用MeasureIt。通过使用这些工具,您可以获得特定元素的坐标。之后,您可以轻松地单击这些元素。观看以下视频,了解如何在火狐中使用MeasureIt (从11:45分钟开始)。

使用火狐MeasureIt插件查找特定元素的坐标

你关心的另一个问题是如何找到屏幕大小变化的坐标?正常情况下,每个显示器或笔记本电脑都会有一些标准的屏幕尺寸。因此,首先,使用selenium获取屏幕的大小,然后如果对每个屏幕大小的条件进行,则可以使用。这意味着,如果大小大约是800*1200,那么使用这些坐标,其他使用其他坐标,每个屏幕大小使用其他坐标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59918530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档