我想点击Exported_Systems href,然后在下拉选项中选择“将链接另存为”。我该怎么做?
<a href="/core/cache/0WDb_ukdMUOA7qoW9lt1cgnee0I=/Exported_Systems.csv" target="_blank">Exported_Systems.csv</a>
答案 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()