Селен: загрузить файл в Google Chrome

Есть ли способ загрузить файл в Google Chrome, поскольку Selenium RC «attach_file» поддерживает только Firefox? Любое предложение или обходные решения очень ценятся.

3 Solutions collect form web for “Селен: загрузить файл в Google Chrome”

Если вы используете Webdriver, то для загрузки файла все, что вам нужно, это «sendKeys», чтобы ввести путь к файлу. Вам нужно «пропустить» часть нажатия кнопки обзора, которая открывает диалоговое окно для выбора файла. Версия Java, которая работает для меня, выглядит примерно так:

WebElement inputFilePath = driver.findElement(By.id("filepath")); inputFilePath.sendKeys("/absolute/path/to/my/local/file"); 

Загрузка файла обычно представляет собой запрос POST, поэтому вы можете загрузить файл без использования Selenium; Если вашему сайту не нужны файлы cookie, вам необходимо сначала восстановить cookie-файлы с помощью webdriver.get_cookies ()

Простой пример:

 # required package: # http://pypi.python.org/pypi/MultipartPostHandler/0.1.0 import MultipartPostHandler, urllib2, cookielib cookies = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies), MultipartPostHandler.MultipartPostHandler) path_to_file = r"abc.zip" open_file = open(path_to_file,"rb") param = { "file": open_file } req = opener.open("http://www.yoursite.com/uploadfile", param) open_file.close() 

Использование IJavaScriptExecutor заключается в изменении поля ввода для загрузки, чтобы щелкнуть так, чтобы хром-драйвер не выдавал ошибку, говоря, что этот элемент не доступен для кликов.

  [SetUp] public void SetupTest() { driver = new ChromeDriver(); baseURL = ""; verificationErrors = new StringBuilder(); } [Test] public void Test() { IJavaScriptExecutor js = driver as IJavaScriptExecutor; IWebElement element = driver.FindElement(By.Id("UploadFile_ButtonID")); js.ExecuteScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1", element); Thread.Sleep(1000); element.SendKeys("D:\\path\\test\\image.jpg"); } 
  • AttributeError: объект 'list' не имеет атрибута 'click' - Selenium Webdriver
  • Скриншот Webdriver
  • Как использовать драйвер HtmlUnit с Selenium через привязки Python?
  • Получить текст из нескольких элементов с тем же классом в Selenium для Python?
  • дождитесь обновления страницы
  • Заполнение формы паролем с помощью Splinter
  • Python Webdriver вызывает ошибку http.client.BadStatusLine
  • Ошибка «Разрешить отказ» разрушает Selenium scraping
  •  
    Interesting Posts for Van-Lav

    Почему я вижу ошибку «невозможно импортировать имя descriptor_pb2» при использовании буферов протокола Google?

    Как сравнить Enums в Python?

    Python: Когда переменная передается по ссылке и когда по значению?

    быстрый способ чтения из StringIO до появления некоторого байта

    Версия для разработки на PyPI

    Django-сельдерей: Проходящий запрос Объект работнику

    Как импортировать функции из других проектов в Python?

    Удалить последнюю строку ввода в Python

    Можете ли вы исправить ложную отрицательную оценку в классификаторе в scikit learn

    Как сделать виджет в центре экрана в PySide / PyQt?

    Сравнение pandas повышает TypeError: не может сравниться массив dtyped со скаляром типа

    Элегантный способ создания пустых панд DataFrame с NaN типа float

    В любой документации API-интерфейса python, почему необязательные аргументы записываются в вложенном стиле?

    Python urllib2 Исключение URLError?

    Как использовать память с помощью Python?

    Python - лучший язык программирования в мире.