【发布时间】:2017-11-08 02:07:46
【问题描述】:
我正在尝试在我的 selenium javascript 应用程序中获取最后下载的文件的名称。
我的 selenium 驱动程序使用:driver.get('chrome://downloads'); 导航到 chrome 下载页面,但是当我到达那里时,selenium 无法在下载页面上找到任何元素。
chrome 下载页面 'chrome://downloads' 有一堆 shadow-root 元素,我不知道如何才能访问这些元素我想要的id。 如何访问shadow-root 项目下的标识符?
我想得到 $("#file-link") 如下所示:
但是当我使用jquery查找时,一切都返回null(可能是因为它在shadow-root后面)
这是我所有信息的大图,包括显示“#file-link”完全存在:
我用来等待元素存在的代码与我用于应用程序中所有元素的代码相同,所以我认为这已经在工作了:
driver.wait(until.elementLocated(By.id('downloads-manager')), 120000).then(function(){
console.log("#downloads-manager shows");
driver.findElement(By.id('downloads-manager')).then(function(dwMan){
//How do I "open" #shadow-root now? :(
});
});
这是我的版本信息:
- 铬 v54.0.2840.71
- 节点 v6.5.0
- ChromeDriver v2.27.440175
- selenium-webdriver v3.4.0
类似问题
- Selenium webdriver can't find elements at chrome://downloads(这和我在 python 中遇到的问题相同)
链接
- Selenium Javascript API:https://seleniumhq.github.io/selenium/docs/api/javascript/
【问题讨论】:
标签: javascript jquery html node.js selenium