【发布时间】:2018-09-20 18:55:51
【问题描述】:
尝试使用内置的 Selenium EventFiringWebDriver 类执行 javaScript 命令。
EventFiringWebDriver eventFiringWebDriver = new EventFiringWebDriver(driver);
eventFiringWebDriver.executeScript("document.querySelector('[ng-reflect-title='Assessment']>div.cc-tile>div.cc-tile-body').scrollTop=370");
但这会产生错误:Runtime.evaluate throw exception: SyntaxError: missing ) after argument list
如果我使用 Chrome 为这个对象提供的长 ccs 选择器:
body > bb-root > best-app > div > div.cc-content > bb-best > bb-assess > best-tile > div > div
代替:
[ng-reflect-title='Assessment']>div.cc-tile>div.cc-tile-body
然后它完美地工作。
当通过 Chrome 开发工具运行时,上述两个 ccs 选择器都会在页面上生成一个对象。我更喜欢使用更动态的选择器。
【问题讨论】:
标签: javascript selenium