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/