1
I have below code which works fine to navigate through 3 pages and hit link to download .csv file in firefox. But using profile preference, am unable to get it download automatically. Any help please. I have set profile setting at the starting, is it correct...?
from lib2to3.pgen2 import driver
from selenium import webdriver
import unittest
from webbrowser import browser
from selenium.webdriver.common.keys import Keys
import selenium
import time
class UnitTestExample(unittest.TestCase):
def setUp(self):
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", "C:\Python34")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")
self.driver = webdriver.Firefox(firefox_profile=profile) # note that this creates a class instance variable
self.driver.implicitly_wait(30) # when testing AJAX this would not be used
self.base_url = "https://webtac.industrysoftware.automation.siemens.com/webpr/webpr.php?objtype=frames&g_userid=fddd&g_session_id=7311876" # sets up another class instance variable
self.verificationErrors = []
def testWebSite1(self): # a first test case there can be others
driver = self.driver # class instance variable used here
driver.get(
"https://webtac.industrysoftware.automation.siemens.com/webpr/webpr.php?objtype=frames&g_userid=a3rgcw&g_session_id=7311876")
username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")
username.send_keys("username")
password.send_keys("password")
### driver.find_element_by_class_name("btn btn-primary").send_keys("\n")
driver.find_element_by_xpath('//button[@type="submit"]').submit()
time.sleep(30)
# Call java fuction and web page loads
driver.execute_script('javascript:parent.gotoSearch(\'advanced\')')
# Add below dates in input fields
time.sleep(10)
driver.switch_to.frame(0)
time.sleep(10)
openf = driver.find_element_by_id("openedFrom_dateText")
opent = driver.find_element_by_id("openedTo_dateText")
openf.clear();
openf.send_keys("01-Jan-2015")
opent.clear();
opent.send_keys("02-Jan-2015")
time.sleep(20)
# Print status
print(driver.current_url)
window_before = driver.window_handles[0]
print(window_before)
#Button click
driver.find_element_by_xpath('//input[@type="button"]').click()
time.sleep(10)
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
print(driver.current_url)
driver.find_element_by_link_text("[Comma-Delimited Text (CSV)]").click()
print(window_after)
time.sleep(10)
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__": # allows unittest to start by running this class file
unittest.main() # start the main method of unittest