我在Python中使用Selenium嘗試單擊鼠標懸停在該下拉菜單上時出現的下拉菜單中的鏈接。這裏是下拉菜單信息:單擊在Python中使用Selenium的隱藏鏈接
<div id="DownloadMenu">
<ul id="DownloadMenu_control" class="topmenu" widgetid="DownloadMenu_control">
<li class="horizontal-list-item-2 leftFloatedItem" id="[email protected]_1" widgetid="[email protected]_1" style="">
<a class="horizontal-list-item-2 leftFloatedItem" href="javascript:void(0)">Download</a>
<ul id="common_navigation_MenuControl_6" class="submenu" style="display: none; left: 0px; visibility: hidden;" widgetid="common_navigation_MenuControl_6">
<li class="subitems" id="[email protected]" widgetid="[email protected]">
<a href="javascript:com.reuters.rts.event(event, 'openMultiDocInfoViewerBatchViewEikon', 'itemsCollectionId', 'AllDocumentListView_items', 'researchTableManagerId', 'AllDocumentListView', 'summary', escape(encodeURIComponent(dijit.byId('advancedSearchManager').getFilterSubmittedSummary())), 'fileSizeLimitForMerging', '25','forBatchPrint','true', 'action','Save');">Documents</a>
</li>
</ul>
</li>
</ul>
</div>
我想單擊「a href」標記中的「文檔」鏈接。當我將鼠標懸停在菜單上時,代碼更改如下:
<div id="DownloadMenu">
<ul id="DownloadMenu_control" class="topmenu" widgetid="DownloadMenu_control">
<li class="topitemOn" id="[email protected]_1" widgetid="[email protected]_1" style="">
<a class="horizontal-list-item-2 leftFloatedItem" href="javascript:void(0)">Download</a>
<ul id="common_navigation_MenuControl_6" class="submenu" style="display: none; left: 0px;" widgetid="common_navigation_MenuControl_6">
<li class="subitems" id="[email protected]" widgetid="[email protected]">
<a href="javascript:com.reuters.rts.event(event, 'openMultiDocInfoViewerBatchViewEikon', 'itemsCollectionId', 'AllDocumentListView_items', 'researchTableManagerId', 'AllDocumentListView', 'summary', escape(encodeURIComponent(dijit.byId('advancedSearchManager').getFilterSubmittedSummary())), 'fileSizeLimitForMerging', '25','forBatchPrint','true', 'action','Save');">Documents</a>
</li>
</ul>
</li>
</ul>
</div>
您可以看到visible:hidden部分在第二個ul標籤中消失。
我發現使用下面的代碼頁面上的元素:
download_menu = driver.find_element_by_id("DownloadMenu")
download_button = download_menu.find_elements_by_tag_name('a')[1]
如果我嘗試使用點擊下載按鈕:
download_button.click()
我得到一個錯誤,該元素是不可見:
ElementNotVisibleException: Message: element not visible
所以,我想,
ActionChains(driver).move_to_element(download_menu).move_to_element(download_button).click(download_button).perform()
當我這樣做時,沒有任何反應。所以,我想執行腳本,以使菜單可見,然後點擊並沒有工作之一:
visibility_tag = download_menu.find_elements_by_tag_name('ul')[1]
driver.execute_script("arguments[0].style.display = 'block'; arguments[0].style.left = '0px'; arguments[0].style.visibility = ''", visibility_tag)
當我運行execute_script功能,菜單將不會在我的瀏覽器變得可見。它仍然不能被點擊。我在這裏瘋了。有任何想法嗎?我在Python中使用了Selenium的Chrome擴展。
如果使用類似CSS任何iframe.try見:「#DownloadMenu一個[HREF * =文件] 「 – lauda