javascript - 使用 Selenium NodeJS 双击日历

标签 javascript node.js selenium

https://imgur.com/bcKQIJr <-- 日历图片

我有一个需要双击选择日期的日历。我在 Javascript 中工作,NodeJS Selenium-webdriver 库的事件集非常有限,没有双击选项......我是否需要合并另一个库来实现双击功能或其他功能?我真的碰壁了。

我知道这段代码不起作用,我已经尝试了所有方法。我只需双击如下所示的元素列表。

`el = driver.findElement(By.xpath("//div[@class='container']//table[2]//tbody[1]//tr[1]//td[3]"));

el.click()
.then(_ => driver.sleep(250))
.then(_ => el.click())
`

我可以看到发生的点击,所以我知道我有正确的元素并且事件发生在正确的地点/时间......但我无法用我所拥有的触发“选定”日期。

最佳答案

在某些情况下(特定于浏览器)这可能不适用于日历。为此,您可能需要使用 javascript 执行器。下面是一些代码供您引用。

    let ele = document.evaluate("//th[@title='Chrome']", document, null,XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    var clickEvent = document.createEvent ('MouseEvents');
    clickEvent.initEvent ('dblclick', true, true);
    ele.dispatchEvent (clickEvent);

这应该模拟双击元素。将此脚本存储在变量中(例如 scrpit)并发送到浏览器以使用 js 执行器执行。下面是一些示例代码,假设变量 script 有 js 脚本

    driver.executeScript(script).then(function(return_value) {
       console.log('returned ', return_value)
    }); 

关于javascript - 使用 Selenium NodeJS 双击日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53951386/

相关文章:

javascript - 从 JavaScript 调用 C 共享库 API(在 .so lib 中)

javascript - Protractor 在忽略同步期间等待,浏览器 implicitTimeout 与 browser.wait 超时

java - XPath 结构不起作用

javascript - angularjs 谷歌地图信息窗口

javascript - 获取输入数组的第 n 个键值

javascript - 为什么 1 ["foo"] 返回未定义而不是错误?

node.js - MongoDB 使用 Mongoose 保存问题

javascript - 在 NodeJS 中使用和更新全局变量安全吗?

selenium - 碲与 Selenium : Compare

JavaScript 文化敏感货币格式