I'm trying to send POST request with Chrome
extension DHC
https://chrome.google.com/webstore/detail/dhc-resthttp-api-client/aejoelaoggembcahagimdiliamlcdmfm?hl=en (I know that there are a lot of tools to send http
requests, but I need to use this one).
I wrote following code:
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
# Add Option to be able to use DHC extension
chrome_options = Options()
chrome_options.add_extension('/usr/lib/firefox/browser/extensions/aejoelaoggembcahagimdiliamlcdmfm-0.8.6.2-www.Crx4Chrome.com.crx')
# Start browser session
dr = webdriver.Chrome(chrome_options=chrome_options)
# Open Extension page
dr.get('chrome-extension://aejoelaoggembcahagimdiliamlcdmfm/dhc.html')
# Close update pop-up if exists
try:
dr.find_element_by_xpath('//a[@class="btn btn-info"]').click()
except:
pass
# Change HTTP request type to POST
request_type = dr.find_elements_by_xpath('//input[@class="gwt-TextBox"]')[1]
request_type.clear()
request_type.send_keys("POST")
# Choose body type 'file'
dr.find_element_by_xpath('//div[@class="pane-head"]').click()
dr.find_elements_by_xpath('//li[@class="dropdown right"]')[1].click()
dr.find_element_by_xpath('//a[contains(text(), "file")]').click()
# Set path to file I want to send
dr.find_element_by_xpath('//input[@class="gwt-FileUpload"]').send_keys('/path/to/file/dummy3gb')
After last step name of uploaded file appears, but actual file size is 0 bytes and I can't send request as content is not recognized while if to choose file manually from upload prompt proper file size is displayed and I can send request
Am I doing something wrong? Any ideas?
When you are want to test your API from DHC for the post method. there has an option for input type like first one is test and second one is file. According to the image.
When you select the file from drop down you can post your file for your web service.