Селен: загрузить файл в 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"); } 
  • Не удается запустить Internet Explorer через привязки python Selenium WebDriver
  • Откройте web в новой вкладке Selenium + Python
  • Как отправить несколько ключей в WebDriver с помощью Python?
  • Как избежать повторного входа в мои аккаунты каждый раз, Selenium Python mac
  • эквивалент selenium.wait_for_condition в привязках Python для WebDriver
  • Обрабатывать несколько окон в Python
  • selenium.common.exceptions.WebDriverException: Сообщение: не удается загрузить профиль
  • Selenium: исключение FirefoxProfile Не удается загрузить профиль
  • Selenium python find_element_by_class_name () перестает работать с версии 2.2 до 2.21 - не может использовать 'Compound Class Name'
  • Как я могу заставить Selenium Web Driver ждать появления элемента, а не просто присутствовать?
  • Как захватить снимок экрана, если мои носеты не сработают?
  • Python - лучший язык программирования в мире.