Я использую селен, чтобы сделать функцию щелчка по гиперссылке, которая загружается на определенную страницу. Скрипт работает для google chrome, но не для phantomjs. Почему это не работает?Загрузить файл через гиперссылку в PhantomJS с помощью Selenium
from selenium import webdriver
driver = webdriver.Chrome()
#driver = webdriver.PhantomJS(executable_path = "/Users/jameslemieux/PythonProjects/phantomjs-1.9.8-macosx/bin/phantomjs")
driver.get("http://www.youtube-mp3.org/?e=t_exp&r=true#v=hC-T0rC6m7I")
elem = driver.find_element_by_link_text('Download')
elem.click()
driver.save_screenshot('/Users/jameslemieux/Desktop/Misc./test_image.png')
driver.quit()
Это работает в хромированном состоянии, но для выполнения задачи всегда открывается новое хромированное окно. Я читал, что я должен использовать phantomjs, чтобы он запускался за кулисами, однако, когда я переключаю драйверы на phantomjs, загрузка, похоже, не проходит. Снимок экрана захватывает, и он действительно находится на правильной странице, и «Скачать» определенно существует. Так
elem.click()
не делать то, что он должен, или щелкает, но phantomjs не знают, как бороться с загрузкой ссылкой прямой. Пожалуйста, помогите, я был в этом часами.
PhantomJS не (никогда) триггер скачать. Вы должны явно загрузить его, используя XHR или что-то еще с прямым URL-адресом, но есть ограничение, что оно перестанет загружаться с отметкой 30 секунд. –
@ArtjomB. Хорошая точка, часть загрузки может обрабатываться через 'urlretrieve()', как показано ниже. – alecxe