如何从 Chrome 浏览器获取画布元素坐标

伸出援手

我确实尝试过许多 chrome 扩展,但似乎是从窗口顶部计算坐标,而不仅仅是考虑画布。

我在这个页面上:https : //gojs.net/latest/samples/grouping.html

想要获得下面 + 按钮的坐标:

在此处输入图片说明

我实际上正在尝试使用 selenium 使用 action 类单击该 + 按钮,我的代码是:

  driver.get("https://gojs.net/latest/samples/grouping.html");
        WebElement flowCanvas = driver.findElement(By.xpath("//div[@id='myDiagramDiv']//canvas"));

            new Actions(driver)
                    .moveToElement(flowCanvas, 500, 200).click().perform();

因为我没有得到 + 按钮的确切坐标,所以上面的代码没有点击它。

沃尔特·诺斯伍兹

我假设这些500, 200值是flowCanvasHTML 元素坐标系中的 (x,y) 点那是对的吗?

首先,您需要访问您的应用程序为 HTMLDivElement 创建Diagram对象,该 HTMLDivElement 包含 GoJS 用来显示图表和支持编辑的画布和其他元素。为此调用静态函数Diagram.fromDiv例如:

var myDiagram = go.Diagram.fromDiv(theDivElement);

然后您需要知道要单击其按钮的键。如果Group模板中的“SubGraphExpanderButton”有一个GraphObject.name并且您知道名称是什么,您可以执行以下操作:

var group = myDiagram.findNodeForKey(groupKey);
if (!group) return;
var button = group.findObject(buttonName);
if (!button) return;
var docpt = button.getDocumentPoint(go.Spot.Center);
var viewpt = myDiagram.transformDocToView(docpt);
new Actions(driver)
    .moveToElement(flowCanvas, viewpt.x, viewpt.y)
    .click()
    .perform();

这与 Robot 示例中演示的技术相同:https : //gojs.net/latest/extensions/Robot.html

嗯,您可能希望首先确保节点(或至少是按钮)位于视口内。首先调用Diagram.scrollToRect

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Chrome浏览器中获取框架的URL

如何使Chrome浏览器更像Firefox?

如何从Java启动Chrome浏览器

如何使Chrome浏览器崩溃?

如何与元素#影子根(开)内而Chrome浏览器清除浏览数据的使用cssSelector互动

如何使用Chrome浏览器API更改chrome:// flags?

CSS-如何在Google Chrome浏览器中调试活动/选定的输入元素

如何在Google Chrome浏览器的可滚动容器中实现元素的反向堆叠?

如何在不打开 Chrome 浏览器的情况下使用 Selenium 获取数据?

如何使用JavaScript在Android的Google Chrome浏览器中获取固定的地址栏

如何使用Selenium获取Chrome浏览器控制台日志[INFO]条目

如何在c#中使用chrome web浏览器获取javascript的返回值

如何在Google Chrome浏览器中获取5.1音频?

如何在Windows 10的Google Chrome浏览器中获取重新定义的标签?

如何在Chrome浏览器中更正网页的字体?

如何在Chrome中禁用浏览器缓存

如何修复Google Chrome浏览器损坏的设置文件?

如何重新激活Google Chrome浏览器的精美打印?

如何在Chrome浏览器中运行硒测试?

如何清除在每次测试之间的chrome浏览器的状态?

如何在Chrome浏览器中更改语言环境

如何在Google Chrome浏览器中运行Postman

如何从Ubuntu 14.04删除Chrome浏览器设置?

Google Chrome浏览器中的“不跟踪”如何工作?

如何禁用新的Chrome浏览器蓝牙API?

如何关闭Google Chrome浏览器中的动画?

如何使Google Chrome浏览器忘记网站

如何检测Chrome和Safari浏览器(Webkit)

Chromebook:如何增加Chrome Web浏览器GUI的大小?