右键单击href并选择save链接,如Python Selenium

时间:2017-03-14 08:52:35

标签: python selenium

我想点击Exported_Systems href,然后在下拉选项中选择“将链接另存为”。我该怎么做?

<a href="/core/cache/0WDb_ukdMUOA7qoW9lt1cgnee0I=/Exported_Systems.csv" target="_blank">Exported_Systems.csv</a>

2 个答案:

答案 0 :(得分:1)

这可能不是一个完美的解决方案,但它会模拟这项工作。 您可以使用操作链打开右键菜单。

from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get(link)
elem = driver.find_element_by_css_selector('a[target="_blank"]')
actionChain = ActionChains(driver)
actionChain.context_click(elem).perform()

我使用“target”属性来选择标记。 但现在问题是访问该菜单超出了selenium的范围。所以,在这里我使用pyautogui来模拟4个向下箭头键和按下输入按钮。(4个向下箭头键作为“保存链接”选项在每个锚标签中是第4个)

import pyautogui
pyautogui.typewrite(['down','down','down','down','enter'])

希望这有帮助。

答案 1 :(得分:1)

另一种方法是使用配置文件以阻止下载对话:

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/csv')

driver= webdriver.Firefox(profile)
driver.get("yourWebSite")

driver.find_element_by_xpath('//a[@href][text()[contains(., 'Exported_Systems')]]').click()