我想在我的selenium javascript應用程序中獲取上次下載的文件的名稱。如何使用jquery和selenium在'chrome:// downloads'處訪問`shadow-root`下的元素?
我有我的硒驅動程序導航到鉻下載頁使用:driver.get('chrome://downloads');
,但是當我到達那裏時,硒無法找到下載頁面上的任何元素。
鉻下載頁的Chrome://下載「有一堆的,我不知道如何才能訪問ID的,我希望得到下面shadow-root
元素。 如何訪問shadow-root
項目下的標識符?
我想$( 「#文件鏈接」),如下所示:
但是,當我使用jQuery找到它,一切都返回null(可能是因爲它的背後shadow-root
)
這裏的一切我都包括顯示出「#文件鏈接」的信息的大圖像t otally存在:
我使用等待存在的元素的代碼是一樣的,我用在我的應用程序的所有元素,所以我覺得這個已經工作:
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
- 硒的webdriver v3.4.0
類似的問題
- Selenium webdriver can't find elements at chrome://downloads(這是我有同樣的問題,但在python)
鏈接
- 硒的Javascript API:https://seleniumhq.github.io/selenium/docs/api/javascript/
Oooooh哇,更有意義!謝謝Florent! – Kayvar