jquery - 用于测试 SpreadJS 的 Selenium 驱动程序
问题描述
如何根据 spreadJs 中的单元格位置进行点击(事件)?我尝试类似:
sheet.setActiveCell(3,3);
sheet.cellClick();
和
sheet.getCell(3,3).cellClick();
但它不起作用。如果有任何解决方案或建议,请提前感谢。
解决方案
您需要做的实际上是使用 selenium 创建一个动作的实例。例如,您可以让 Web 驱动程序打开 Chrome,然后导航到我们的示例之一,如下所示:
var webDriver = new OpenQA.Selenium.Chrome.ChromeDriver();
webDriver.Navigate().GoToUrl("https://www.grapecity.com/en/demos/spread/JS/ExcelMobileSample/");
然后使用 getCellRect 和 SpreadJS 宿主元素的偏移量计算当前页面的 x/y 坐标:
var cellRect = sheet.getCellRect(3, 3);
var host = spread.getHost();
var offset = $(host).offset();
cellRect.x += offset.left + cellRect.width / 2;
cellRect.y += offset.top + cellRect.height / 2;
然后将鼠标移动到单元格的中心位置(在本例中为单元格 D4):
var action = new OpenQA.Selenium.Interactions.Actions(webDriver);
action.MoveByOffset(x, y);
然后最后单击该单元格:
action.Click();
action.Perform();
让我知道这是否有帮助。
问候,
传播团队
推荐阅读
- button - 如何创建一个在没有自动注册/创建表单odoo13的情况下打开弹出窗口的按钮
- python - 如何同步python线程的启动时间?
- css - 禁用时更改文本文件的颜色
- python - `G` 类型的 python % 字符串格式如何表现?
- go - 什么是 shell 中 test -x 的 golang 等价物?
- html - 在 Xaringan Rmarkdown 演示文稿中使用 introjs
- node.js - 使用 express 时如何设置 nodejs 应用程序和 htaccess?
- c++ - 如何检测
OSX 上的可用性? - symfony - 在 Symfony Messenger 异步消息处理程序上使用选民/权限的最佳方式?
- angular - 在字段上添加验证以确保用户不会将表单提交为空